From aec20daa391887c42b1bb4fd6da74210606e78a8 Mon Sep 17 00:00:00 2001 From: Alastair McKinstry Date: Fri, 2 Dec 2016 15:52:04 +0000 Subject: [PATCH 1/1] Import openmpi_2.0.2~git.20161225.orig.tar.xz [dgit import orig openmpi_2.0.2~git.20161225.orig.tar.xz] --- AUTHORS | 338 + Doxyfile | 1099 +++ HACKING | 249 + INSTALL | 101 + LICENSE | 89 + Makefile.am | 41 + Makefile.ompi-rules | 68 + NEWS | 3153 ++++++ README | 2126 +++++ README.JAVA.txt | 275 + VERSION | 113 + autogen.pl | 1401 +++ config/Makefile.am | 34 + config/Makefile.options | 20 + config/c_get_alignment.m4 | 72 + config/c_weak_symbols.m4 | 134 + config/distscript.sh | 56 + config/find_common_syms | 144 + config/ltmain_nag_pthread.diff | 18 + config/ltmain_pgi_tp.diff | 11 + config/ompi_check_libfca.m4 | 70 + config/ompi_check_libhcoll.m4 | 66 + config/ompi_check_lustre.m4 | 93 + config/ompi_check_mxm.m4 | 94 + config/ompi_check_plfs.m4 | 114 + config/ompi_check_psm.m4 | 92 + config/ompi_check_psm2.m4 | 90 + config/ompi_check_pvfs2.m4 | 68 + config/ompi_check_ucx.m4 | 93 + config/ompi_check_udapl.m4 | 120 + config/ompi_config_files.m4 | 52 + config/ompi_configure_options.m4 | 271 + config/ompi_contrib.m4 | 140 + config/ompi_cxx_find_exception_flags.m4 | 94 + config/ompi_cxx_find_template_parameters.m4 | 44 + config/ompi_cxx_find_template_repository.m4 | 172 + config/ompi_cxx_have_exceptions.m4 | 44 + config/ompi_endpoint_tag.m4 | 48 + config/ompi_ext.m4 | 778 ++ config/ompi_find_mpi_aint_count_offset.m4 | 246 + config/ompi_fortran_check.m4 | 203 + config/ompi_fortran_check_abstract.m4 | 47 + config/ompi_fortran_check_asynchronous.m4 | 48 + config/ompi_fortran_check_bind_c.m4 | 119 + config/ompi_fortran_check_c_funloc.m4 | 49 + config/ompi_fortran_check_f08_assumed_rank.m4 | 61 + config/ompi_fortran_check_ignore_tkr.m4 | 205 + config/ompi_fortran_check_interface.m4 | 51 + config/ompi_fortran_check_iso_fortran_env.m4 | 42 + config/ompi_fortran_check_logical_array.m4 | 122 + config/ompi_fortran_check_max_array_rank.m4 | 69 + config/ompi_fortran_check_optional_args.m4 | 54 + config/ompi_fortran_check_private.m4 | 47 + config/ompi_fortran_check_procedure.m4 | 56 + config/ompi_fortran_check_protected.m4 | 44 + config/ompi_fortran_check_real16_c_equiv.m4 | 156 + config/ompi_fortran_check_storage_size.m4 | 106 + config/ompi_fortran_check_type.m4 | 43 + config/ompi_fortran_check_use_only.m4 | 75 + ...ompi_fortran_find_ext_symbol_convention.m4 | 143 + .../ompi_fortran_find_module_include_flag.m4 | 83 + config/ompi_fortran_get_alignment.m4 | 179 + config/ompi_fortran_get_handle_max.m4 | 86 + config/ompi_fortran_get_kind_value.m4 | 101 + config/ompi_fortran_get_sizeof.m4 | 90 + config/ompi_fortran_get_value_true.m4 | 134 + config/ompi_interix.m4 | 56 + config/ompi_microsoft.m4 | 118 + config/ompi_setup_contrib.m4 | 29 + config/ompi_setup_cxx.m4 | 454 + config/ompi_setup_fc.m4 | 253 + config/ompi_setup_java.m4 | 104 + config/ompi_setup_mpi_ext.m4 | 29 + config/ompi_setup_mpi_fortran.m4 | 823 ++ config/ompi_setup_mpi_profiling.m4 | 50 + config/opal_case_sensitive_fs_setup.m4 | 103 + config/opal_check_alps.m4 | 171 + config/opal_check_attributes.m4 | 611 ++ config/opal_check_broken_qsort.m4 | 54 + config/opal_check_cma.m4 | 132 + config/opal_check_compiler_version.m4 | 123 + config/opal_check_compiler_works.m4 | 57 + config/opal_check_cray_pmi.m4 | 107 + config/opal_check_cuda.m4 | 165 + config/opal_check_icc.m4 | 60 + config/opal_check_ident.m4 | 101 + config/opal_check_knem.m4 | 74 + config/opal_check_libfabric.m4 | 95 + config/opal_check_libnl.m4 | 280 + config/opal_check_offsetof.m4 | 43 + config/opal_check_openfabrics.m4 | 484 + config/opal_check_os_flavors.m4 | 69 + config/opal_check_package.m4 | 223 + config/opal_check_pmi.m4 | 330 + config/opal_check_portals4.m4 | 109 + config/opal_check_ps.m4 | 43 + config/opal_check_pthread_pids.m4 | 112 + config/opal_check_singularity.m4 | 60 + config/opal_check_ugni.m4 | 82 + config/opal_check_vendor.m4 | 277 + config/opal_check_verbs.m4 | 120 + config/opal_check_version.m4 | 79 + config/opal_check_visibility.m4 | 90 + config/opal_check_withdir.m4 | 38 + config/opal_check_xpmem.m4 | 112 + config/opal_config_asm.m4 | 1305 +++ config/opal_config_files.m4 | 30 + config/opal_config_pthreads.m4 | 676 ++ config/opal_config_subdir.m4 | 147 + config/opal_config_subdir_args.m4 | 84 + config/opal_config_threads.m4 | 72 + config/opal_configure_options.m4 | 516 + config/opal_ensure_contains_optflags.m4 | 66 + config/opal_find_type.m4 | 56 + config/opal_functions.m4 | 661 ++ config/opal_get_version.m4 | 101 + config/opal_get_version.m4sh | 93 + config/opal_lang_link_with_c.m4 | 64 + config/opal_load_platform.m4 | 188 + config/opal_mca.m4 | 958 ++ config/opal_mca_priority_sort.pl | 31 + config/opal_save_version.m4 | 64 + config/opal_search_libs.m4 | 75 + config/opal_set_lib_prefix.m4 | 62 + config/opal_set_mca_prefix.m4 | 41 + config/opal_setup_cc.m4 | 375 + config/opal_setup_cli.m4 | 37 + config/opal_setup_component_package.m4 | 105 + config/opal_setup_cxx.m4 | 226 + config/opal_setup_ft.m4 | 178 + config/opal_setup_java.m4 | 218 + config/opal_setup_wrappers.m4 | 559 ++ config/opal_strip_optflags.m4 | 55 + config/opal_summary.m4 | 115 + config/opal_try_assemble.m4 | 52 + config/orte_check_loadleveler.m4 | 53 + config/orte_check_lsf.m4 | 140 + config/orte_check_sge.m4 | 59 + config/orte_check_slurm.m4 | 77 + config/orte_check_tm.m4 | 166 + config/orte_config_files.m4 | 38 + config/orte_configure_options.m4 | 57 + config/orte_setup_debugger_flags.m4 | 56 + config/oshmem_config_files.m4 | 28 + config/oshmem_configure_options.m4 | 159 + config/oshmem_setup_profiling.m4 | 47 + config/pkg.m4 | 303 + configure.ac | 1442 +++ contrib/Makefile.am | 109 + contrib/amca-param-sets/example.conf | 5 + contrib/amca-param-sets/ft-enable-cr | 66 + contrib/amca-param-sets/ft-enable-cr-recovery | 81 + contrib/annual-maintenance/convert-to-git.txt | 60 + .../find-committers-from-last-year.pl | 114 + .../Makefile.am | 46 + .../README.txt | 163 + .../autogen.sh | 10 + .../btl_tcp2.addr.h | 73 + .../btl_tcp2.c | 529 + .../btl_tcp2.h | 334 + .../btl_tcp2_addr.h | 73 + .../btl_tcp2_component.c | 1082 +++ .../btl_tcp2_endpoint.c | 835 ++ .../btl_tcp2_endpoint.h | 84 + .../btl_tcp2_frag.c | 286 + .../btl_tcp2_frag.h | 166 + .../btl_tcp2_ft.c | 55 + .../btl_tcp2_ft.h | 35 + .../btl_tcp2_hdr.h | 59 + .../btl_tcp2_proc.c | 802 ++ .../btl_tcp2_proc.h | 128 + .../configure.ac | 195 + .../help-mpi-btl-tcp2.txt | 27 + contrib/build-server/README.txt | 59 + contrib/build-server/crontab.txt | 132 + .../build-server/hwloc-nightly-coverity.pl | 167 + contrib/build-server/hwloc-nightly-tarball.sh | 141 + contrib/build-server/hwloc-release.sh | 45 + contrib/build-server/install-autotools-set.sh | 149 + .../build-server/openmpi-nightly-coverity.pl | 162 + .../build-server/openmpi-nightly-tarball.sh | 149 + contrib/build-server/openmpi-release.sh | 50 + .../openmpi-update-www.open-mpi.org.sh | 11 + contrib/build-server/pmix-nightly-coverity.pl | 162 + contrib/build-server/pmix-nightly-tarball.sh | 152 + contrib/build-server/pmix-release.sh | 52 + contrib/build-server/remove-old.pl | 52 + contrib/check-btl-sm-diffs.pl | 248 + contrib/check-help-strings.pl | 322 + contrib/check-ob1-pml-diffs.pl | 243 + contrib/check-ob1-revision.pl | 41 + contrib/check-owner.pl | 178 + contrib/check_unnecessary_headers.sh | 241 + contrib/cleanperms | 11 + contrib/code_counter.pl | 190 + contrib/completion/mpirun.sh | 206 + contrib/completion/mpirun.zsh | 247 + contrib/coverity/coverity-model.c | 3 + contrib/dist/find-copyrights.pl | 159 + contrib/dist/linux/README | 48 + contrib/dist/linux/README.ompi-spec-generator | 93 + contrib/dist/linux/buildrpm.sh | 287 + contrib/dist/linux/buildswitcherrpm.sh | 191 + contrib/dist/linux/ompi-spec-generator.py | 813 ++ .../linux/openmpi-switcher-modulefile.spec | 240 + .../linux/openmpi-switcher-modulefile.tcl | 65 + contrib/dist/linux/openmpi.spec | 920 ++ contrib/dist/macosx-pkg/ReadMe.rtf | 34 + contrib/dist/macosx-pkg/buildpackage.sh | 550 ++ contrib/dist/make-authors.pl | 227 + contrib/dist/make-html-man-pages.pl | 278 + contrib/dist/make_dist_tarball | 455 + contrib/dist/make_tarball | 1 + .../dist/mofed/compile_debian_mlnx_example.in | 21 + contrib/dist/mofed/debian/changelog.in | 5 + contrib/dist/mofed/debian/compat | 1 + contrib/dist/mofed/debian/control.in | 15 + contrib/dist/mofed/debian/rules.in | 17 + contrib/dist/mofed/debian/source/format | 1 + contrib/find_occurence.pl | 45 + contrib/find_offenders.pl | 89 + contrib/fix_headers.pl | 142 + contrib/fix_indent.pl | 59 + contrib/gen_stats.pl | 275 + contrib/generate_file_list.pl | 36 + contrib/header_replacement.sh | 139 + contrib/headers.txt | 0 .../README-setup-github-diff-emails.txt | 58 + contrib/infrastructure/README.txt | 21 + ...crontab-mpiteam-at-jaguar.crest.iu.edu.txt | 113 + .../crontab-mpiteam-at-lion.crest.iu.edu | 17 + contrib/infrastructure/gitdub-config.yml | 101 + .../github-send-commit-mails.pl | 42 + .../openmpi-update-www.open-mpi.org.sh | 11 + contrib/nightly/create_tarball.sh | 311 + .../nightly/reports/check_devel_headers.pl | 104 + .../nightly/reports/illegal_symbols_report.pl | 340 + .../update-component-owners-github-wiki.pl | 98 + contrib/ompi-time.sh | 1244 +++ contrib/ompi_branch_check_revisions-v1.5.txt | 106 + contrib/ompi_branch_check_revisions.pl | 420 + contrib/ompi_cplusplus.sed | 41 + contrib/ompi_cplusplus.sh | 37 + contrib/ompi_cplusplus.txt | 186 + contrib/openmpi-valgrind.supp | 116 + contrib/platform/clang/align | 8 + contrib/platform/cray_xt3 | 1 + contrib/platform/cray_xt3_romio | 1 + contrib/platform/cray_xt_cnl_romio | 93 + contrib/platform/embedded/build_embedded.sh | 19 + contrib/platform/embedded/debug | 30 + contrib/platform/embedded/gen_embedded.sh | 20 + contrib/platform/embedded/optimized | 30 + contrib/platform/hadoop/cisco | 32 + contrib/platform/hadoop/cisco.conf | 59 + contrib/platform/hadoop/linux | 26 + contrib/platform/hadoop/linux.conf | 59 + contrib/platform/hadoop/mac | 24 + contrib/platform/hadoop/mac.conf | 69 + contrib/platform/ibm/debug-power6-gcc | 14 + contrib/platform/ibm/debug-power7-gcc | 14 + contrib/platform/ibm/debug-ppc32-gcc | 14 + contrib/platform/ibm/debug-ppc64-gcc | 14 + contrib/platform/ibm/optimized-power6-gcc | 15 + contrib/platform/ibm/optimized-power7-gcc | 15 + contrib/platform/ibm/optimized-ppc32-gcc | 15 + contrib/platform/ibm/optimized-ppc64-gcc | 15 + contrib/platform/intel/bend/ext | 34 + contrib/platform/intel/bend/ext.conf | 65 + contrib/platform/intel/bend/linux | 31 + contrib/platform/intel/bend/linux-optimized | 33 + .../platform/intel/bend/linux-optimized.conf | 77 + contrib/platform/intel/bend/linux-orcm.conf | 83 + contrib/platform/intel/bend/linux.conf | 65 + contrib/platform/intel/bend/mac | 25 + contrib/platform/intel/bend/mac-optimized | 27 + .../platform/intel/bend/mac-optimized.conf | 78 + contrib/platform/intel/bend/mac-orcm.conf | 65 + contrib/platform/intel/bend/mac.conf | 64 + contrib/platform/iu/odin/debug | 21 + contrib/platform/iu/odin/debug-nopmi | 27 + contrib/platform/iu/odin/debug-nopmi.conf | 85 + contrib/platform/iu/odin/debug.conf | 85 + contrib/platform/iu/odin/optimized | 23 + contrib/platform/iu/odin/optimized.conf | 92 + contrib/platform/iu/odin/static | 27 + contrib/platform/iu/odin/static.conf | 92 + .../platform/lanl/cray_xc_cle5.2/debug-common | 39 + .../platform/lanl/cray_xc_cle5.2/debug-lustre | 19 + .../lanl/cray_xc_cle5.2/debug-lustre.conf | 104 + .../lanl/cray_xc_cle5.2/optimized-common | 47 + .../lanl/cray_xc_cle5.2/optimized-lustre | 20 + .../lanl/cray_xc_cle5.2/optimized-lustre.conf | 107 + contrib/platform/lanl/cray_xe6/cray-common | 45 + contrib/platform/lanl/cray_xe6/debug-common | 36 + contrib/platform/lanl/cray_xe6/debug-lustre | 20 + .../platform/lanl/cray_xe6/debug-lustre.conf | 104 + contrib/platform/lanl/cray_xe6/gnu-common | 11 + contrib/platform/lanl/cray_xe6/intel-common | 15 + .../platform/lanl/cray_xe6/optimized-common | 42 + .../platform/lanl/cray_xe6/optimized-lustre | 25 + .../lanl/cray_xe6/optimized-lustre.conf | 107 + contrib/platform/lanl/darwin/darwin-common | 43 + contrib/platform/lanl/darwin/debug | 5 + contrib/platform/lanl/darwin/debug-common | 12 + contrib/platform/lanl/darwin/debug-mic | 6 + contrib/platform/lanl/darwin/debug-mic.conf | 100 + contrib/platform/lanl/darwin/debug.conf | 100 + contrib/platform/lanl/darwin/mic-common | 46 + contrib/platform/lanl/darwin/optimized | 5 + contrib/platform/lanl/darwin/optimized-common | 10 + contrib/platform/lanl/darwin/optimized-mic | 6 + .../platform/lanl/darwin/optimized-mic.conf | 100 + contrib/platform/lanl/darwin/optimized.conf | 100 + contrib/platform/lanl/mac.conf | 62 + contrib/platform/lanl/macosx-dynamic | 20 + contrib/platform/lanl/macosx-dynamic-java | 21 + .../platform/lanl/macosx-dynamic-java.conf | 60 + .../platform/lanl/macosx-dynamic-optimized | 20 + .../lanl/macosx-dynamic-optimized.conf | 63 + contrib/platform/lanl/macosx-dynamic.conf | 59 + contrib/platform/lanl/macosx-static-leopard | 21 + .../platform/lanl/macosx-static-leopard.conf | 63 + contrib/platform/lanl/macosx-static-tiger | 20 + contrib/platform/lanl/toss/debug | 8 + contrib/platform/lanl/toss/debug-common | 8 + contrib/platform/lanl/toss/debug-mlx | 4 + contrib/platform/lanl/toss/debug-mlx.conf | 104 + contrib/platform/lanl/toss/debug.conf | 100 + contrib/platform/lanl/toss/optimized | 8 + contrib/platform/lanl/toss/optimized-common | 8 + contrib/platform/lanl/toss/optimized-mlx | 4 + contrib/platform/lanl/toss/optimized-mlx.conf | 104 + contrib/platform/lanl/toss/optimized.conf | 100 + contrib/platform/lanl/toss/toss-common | 40 + contrib/platform/mellanox/optimized | 75 + contrib/platform/mellanox/optimized.conf | 79 + contrib/platform/optimized | 3 + contrib/platform/ornl/cray_xt_cnl_romio | 89 + contrib/platform/ornl/cray_xt_cnl_romio_debug | 89 + contrib/platform/ornl/ornl_configure.gnu | 43 + contrib/platform/ornl/ornl_configure.pgi | 95 + .../ornl/ornl_configure_self_contained | 125 + contrib/platform/ps3 | 15 + contrib/platform/redstorm | 115 + contrib/platform/snl/kitten | 62 + contrib/platform/snl/portals4-m5 | 18 + contrib/platform/snl/portals4-orte | 9 + contrib/platform/utk/cray_xc30_darter | 44 + contrib/purge-tab-indents.pl | 168 + contrib/purge-trailing-blank-lines.pl | 172 + contrib/scaling/Makefile | 14 + contrib/scaling/Makefile.include | 26 + contrib/scaling/mpi_no_op.c | 17 + contrib/scaling/orte_no_op.c | 24 + contrib/scaling/scaling.pl | 344 + contrib/search_compare.pl | 274 + contrib/search_replace.pl | 70 + contrib/spread/spread-init.txt | 20 + contrib/spread/spread.conf | 242 + contrib/submit_test.pl | 349 + contrib/symbol-hiding.pl | 154 + contrib/test_headers_in_ompi.pl | 178 + contrib/uncrustify_open_mpi.cfg | 1187 +++ contrib/update-my-copyright.pl | 347 + contrib/whitespace-purge.sh | 25 + examples/Hello.java | 39 + examples/Makefile | 170 + examples/Makefile.include | 57 + examples/README | 67 + examples/Ring.java | 75 + examples/connectivity_c.c | 67 + examples/dtrace/Makefile | 24 + examples/dtrace/README | 402 + examples/dtrace/mpicommcheck.d | 50 + examples/dtrace/mpicommleak.c | 61 + examples/dtrace/mpicount.d | 49 + examples/dtrace/mpitrace.d | 19 + examples/dtrace/mpitruss.d | 25 + examples/dtrace/myppriv.sh | 14 + examples/dtrace/partrace.sh | 12 + examples/hello_c.c | 27 + examples/hello_cxx.cc | 34 + examples/hello_mpifh.f | 27 + examples/hello_oshmem_c.c | 36 + examples/hello_oshmemfh.f90 | 29 + examples/hello_usempi.f90 | 28 + examples/hello_usempif08.f90 | 31 + examples/oshmem_circular_shift.c | 35 + examples/oshmem_max_reduction.c | 59 + examples/oshmem_shmalloc.c | 30 + examples/oshmem_strided_puts.c | 55 + examples/oshmem_symmetric_data.c | 56 + examples/ring_c.c | 79 + examples/ring_cxx.cc | 85 + examples/ring_mpifh.f | 81 + examples/ring_oshmem_c.c | 65 + examples/ring_oshmemfh.f90 | 66 + examples/ring_usempi.f90 | 75 + examples/ring_usempif08.f90 | 79 + ompi/Makefile.am | 212 + ompi/attribute/Makefile.am | 27 + ompi/attribute/attribute.c | 1329 +++ ompi/attribute/attribute.h | 526 + ompi/attribute/attribute_predefined.c | 277 + ompi/class/Makefile.am | 28 + ompi/class/ompi_seq_tracker.c | 198 + ompi/class/ompi_seq_tracker.h | 70 + ompi/communicator/Makefile.am | 38 + ompi/communicator/comm.c | 1977 ++++ ompi/communicator/comm_cid.c | 1084 +++ ompi/communicator/comm_helpers.c | 92 + ompi/communicator/comm_helpers.h | 41 + ompi/communicator/comm_init.c | 448 + ompi/communicator/comm_request.c | 268 + ompi/communicator/comm_request.h | 39 + ompi/communicator/communicator.h | 669 ++ ompi/contrib/README.txt | 19 + ompi/contrib/libompitrace/Makefile.am | 46 + ompi/contrib/libompitrace/abort.c | 39 + ompi/contrib/libompitrace/accumulate.c | 55 + ompi/contrib/libompitrace/add_error_class.c | 38 + ompi/contrib/libompitrace/add_error_code.c | 37 + ompi/contrib/libompitrace/add_error_string.c | 39 + ompi/contrib/libompitrace/address.c | 39 + ompi/contrib/libompitrace/allgather.c | 51 + ompi/contrib/libompitrace/allgatherv.c | 51 + ompi/contrib/libompitrace/alloc_mem.c | 38 + ompi/contrib/libompitrace/allreduce.c | 47 + ompi/contrib/libompitrace/barrier.c | 39 + ompi/contrib/libompitrace/bcast.c | 45 + ompi/contrib/libompitrace/configure.m4 | 27 + ompi/contrib/libompitrace/finalize.c | 36 + ompi/contrib/libompitrace/init.c | 33 + ompi/contrib/libompitrace/isend.c | 47 + ompi/contrib/libompitrace/recv.c | 44 + ompi/contrib/libompitrace/reduce.c | 48 + ompi/contrib/libompitrace/request_free.c | 36 + ompi/contrib/libompitrace/send.c | 47 + ompi/contrib/libompitrace/sendrecv.c | 60 + ompi/datatype/Makefile.am | 55 + ompi/datatype/ompi_datatype.h | 378 + ompi/datatype/ompi_datatype_args.c | 854 ++ ompi/datatype/ompi_datatype_create.c | 113 + .../ompi_datatype_create_contiguous.c | 41 + ompi/datatype/ompi_datatype_create_darray.c | 283 + ompi/datatype/ompi_datatype_create_indexed.c | 182 + ompi/datatype/ompi_datatype_create_struct.c | 95 + ompi/datatype/ompi_datatype_create_subarray.c | 108 + ompi/datatype/ompi_datatype_create_vector.c | 96 + ompi/datatype/ompi_datatype_external.c | 135 + ompi/datatype/ompi_datatype_external32.c | 97 + ompi/datatype/ompi_datatype_get_elements.c | 75 + ompi/datatype/ompi_datatype_internal.h | 655 ++ ompi/datatype/ompi_datatype_match_size.c | 53 + ompi/datatype/ompi_datatype_module.c | 772 ++ ompi/datatype/ompi_datatype_sndrcv.c | 125 + ompi/debuggers/MPI_Handles_interface.txt | 663 ++ ompi/debuggers/Makefile.am | 90 + ompi/debuggers/debuggers.h | 56 + ompi/debuggers/dlopen_test.c | 139 + ompi/debuggers/mpihandles_interface.h | 882 ++ ompi/debuggers/msgq_interface.h | 696 ++ ompi/debuggers/ompi_common_dll.c | 631 ++ ompi/debuggers/ompi_common_dll_defs.h | 333 + ompi/debuggers/ompi_debugger_canary.c | 37 + ompi/debuggers/ompi_debuggers.c | 192 + ompi/debuggers/ompi_mpihandles_dll.c | 783 ++ ompi/debuggers/ompi_mpihandles_dll_defs.h | 42 + ompi/debuggers/ompi_msgq_dll.c | 1423 +++ ompi/debuggers/ompi_msgq_dll_defs.h | 122 + ompi/debuggers/predefined_gap_test.c | 162 + ompi/debuggers/predefined_pad_test.c | 76 + ompi/debuggers/tv-debugger-attach.txt | 223 + ompi/dpm/Makefile.am | 19 + ompi/dpm/dpm.c | 1246 +++ ompi/dpm/dpm.h | 106 + ompi/errhandler/Makefile.am | 37 + ompi/errhandler/errcode-internal.c | 310 + ompi/errhandler/errcode-internal.h | 101 + ompi/errhandler/errcode.c | 375 + ompi/errhandler/errcode.h | 200 + ompi/errhandler/errhandler.c | 298 + ompi/errhandler/errhandler.h | 415 + ompi/errhandler/errhandler_invoke.c | 188 + ompi/errhandler/errhandler_predefined.c | 349 + ompi/errhandler/errhandler_predefined.h | 49 + ompi/errhandler/help-mpi-errors.txt | 40 + ompi/etc/Makefile.am | 62 + ompi/etc/openmpi-totalview.tcl | 38 + ompi/file/Makefile.am | 26 + ompi/file/file.c | 334 + ompi/file/file.h | 219 + ompi/group/Makefile.am | 35 + ompi/group/group.c | 577 ++ ompi/group/group.h | 435 + ompi/group/group_bitmap.c | 193 + ompi/group/group_dbg.h | 29 + ompi/group/group_init.c | 361 + ompi/group/group_plist.c | 295 + ompi/group/group_set_rank.c | 50 + ompi/group/group_sporadic.c | 191 + ompi/group/group_strided.c | 142 + ompi/include/Makefile.am | 128 + ompi/include/mpi.h.in | 2711 ++++++ ompi/include/mpif-config.h.in | 80 + ompi/include/mpif-externals.h | 44 + ompi/include/mpif-sentinels.h | 68 + ompi/include/mpif-values.pl | 531 ++ ompi/include/mpif.h.in | 61 + ompi/include/ompi/Makefile.am | 32 + ompi/include/ompi/constants.h | 82 + ompi/include/ompi/memchecker.h | 408 + ompi/include/ompi/totalview.h | 27 + ompi/include/ompi/types.h | 36 + ompi/include/ompi/version.h.in | 39 + ompi/include/ompi_config.h | 59 + ompi/info/Makefile.am | 27 + ompi/info/info.c | 726 ++ ompi/info/info.h | 369 + ompi/mca/Makefile.am | 23 + ompi/mca/bcol/Makefile.am | 35 + ompi/mca/bcol/base/Makefile.am | 16 + ompi/mca/bcol/base/base.h | 49 + ompi/mca/bcol/base/bcol_base_frame.c | 374 + ompi/mca/bcol/base/bcol_base_init.c | 45 + ompi/mca/bcol/base/owner.txt | 7 + ompi/mca/bcol/basesmuma/Makefile.am | 66 + ompi/mca/bcol/basesmuma/bcol_basesmuma.h | 1270 +++ .../bcol/basesmuma/bcol_basesmuma_allgather.c | 352 + .../bcol/basesmuma/bcol_basesmuma_allreduce.c | 611 ++ .../mca/bcol/basesmuma/bcol_basesmuma_bcast.c | 487 + .../basesmuma/bcol_basesmuma_bcast_prime.c | 895 ++ .../bcol/basesmuma/bcol_basesmuma_buf_mgmt.c | 486 + .../bcol/basesmuma/bcol_basesmuma_component.c | 380 + .../mca/bcol/basesmuma/bcol_basesmuma_fanin.c | 218 + .../bcol/basesmuma/bcol_basesmuma_fanout.c | 123 + .../bcol/basesmuma/bcol_basesmuma_gather.c | 1106 +++ .../basesmuma/bcol_basesmuma_lmsg_bcast.c | 1878 ++++ .../basesmuma/bcol_basesmuma_lmsg_bcast.h | 626 ++ .../bcol_basesmuma_lmsg_knomial_bcast.c | 452 + .../bcol/basesmuma/bcol_basesmuma_mem_mgmt.c | 101 + .../bcol/basesmuma/bcol_basesmuma_module.c | 687 ++ .../bcol/basesmuma/bcol_basesmuma_progress.c | 74 + .../basesmuma/bcol_basesmuma_rd_barrier.c | 218 + .../basesmuma/bcol_basesmuma_rd_nb_barrier.c | 462 + .../bcol/basesmuma/bcol_basesmuma_reduce.c | 382 + .../bcol/basesmuma/bcol_basesmuma_reduce.h | 92 + .../basesmuma/bcol_basesmuma_rk_barrier.c | 442 + .../mca/bcol/basesmuma/bcol_basesmuma_setup.c | 588 ++ ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c | 460 + ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.h | 105 + .../mca/bcol/basesmuma/bcol_basesmuma_utils.c | 103 + .../mca/bcol/basesmuma/bcol_basesmuma_utils.h | 64 + ompi/mca/bcol/basesmuma/owner.txt | 7 + ompi/mca/bcol/bcol.h | 805 ++ ompi/mca/bcol/iboffload/.opal_ignore | 0 ompi/mca/bcol/iboffload/Makefile.am | 66 + ompi/mca/bcol/iboffload/bcol_iboffload.h | 765 ++ .../bcol/iboffload/bcol_iboffload_allgather.c | 1388 +++ .../bcol/iboffload/bcol_iboffload_allreduce.c | 1418 +++ .../bcol/iboffload/bcol_iboffload_barrier.c | 934 ++ .../mca/bcol/iboffload/bcol_iboffload_bcast.c | 1065 +++ .../mca/bcol/iboffload/bcol_iboffload_bcast.h | 606 ++ .../bcol/iboffload/bcol_iboffload_collfrag.c | 51 + .../bcol/iboffload/bcol_iboffload_collfrag.h | 144 + .../bcol/iboffload/bcol_iboffload_collreq.c | 50 + .../bcol/iboffload/bcol_iboffload_collreq.h | 273 + .../bcol/iboffload/bcol_iboffload_component.c | 1076 +++ .../bcol/iboffload/bcol_iboffload_device.h | 73 + .../bcol/iboffload/bcol_iboffload_endpoint.c | 373 + .../bcol/iboffload/bcol_iboffload_endpoint.h | 328 + .../mca/bcol/iboffload/bcol_iboffload_fanin.c | 350 + .../bcol/iboffload/bcol_iboffload_fanout.c | 349 + ompi/mca/bcol/iboffload/bcol_iboffload_frag.c | 272 + ompi/mca/bcol/iboffload/bcol_iboffload_frag.h | 154 + ompi/mca/bcol/iboffload/bcol_iboffload_mca.c | 451 + ompi/mca/bcol/iboffload/bcol_iboffload_mca.h | 20 + .../bcol/iboffload/bcol_iboffload_module.c | 1538 +++ .../bcol/iboffload/bcol_iboffload_qp_info.c | 452 + .../bcol/iboffload/bcol_iboffload_qp_info.h | 127 + ompi/mca/bcol/iboffload/bcol_iboffload_task.c | 81 + ompi/mca/bcol/iboffload/bcol_iboffload_task.h | 613 ++ ompi/mca/bcol/iboffload/configure.m4 | 40 + ompi/mca/bcol/iboffload/owner.txt | 7 + ompi/mca/bcol/ptpcoll/Makefile.am | 57 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll.h | 474 + .../mca/bcol/ptpcoll/bcol_ptpcoll_allgather.c | 605 ++ .../mca/bcol/ptpcoll/bcol_ptpcoll_allreduce.c | 1032 ++ .../mca/bcol/ptpcoll/bcol_ptpcoll_allreduce.h | 95 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_barrier.c | 933 ++ ompi/mca/bcol/ptpcoll/bcol_ptpcoll_bcast.c | 2321 +++++ ompi/mca/bcol/ptpcoll/bcol_ptpcoll_bcast.h | 868 ++ .../mca/bcol/ptpcoll/bcol_ptpcoll_component.c | 174 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_fanin.c | 28 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_fanout.c | 30 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_mca.c | 197 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_mca.h | 20 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_module.c | 760 ++ ompi/mca/bcol/ptpcoll/bcol_ptpcoll_reduce.c | 405 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_reduce.h | 25 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_utils.c | 139 + ompi/mca/bcol/ptpcoll/bcol_ptpcoll_utils.h | 80 + ompi/mca/bcol/ptpcoll/owner.txt | 7 + ompi/mca/bml/Makefile.am | 37 + ompi/mca/bml/base/Makefile.am | 30 + ompi/mca/bml/base/base.h | 82 + ompi/mca/bml/base/bml_base_btl.c | 140 + ompi/mca/bml/base/bml_base_btl.h | 41 + ompi/mca/bml/base/bml_base_endpoint.c | 52 + ompi/mca/bml/base/bml_base_frame.c | 131 + ompi/mca/bml/base/bml_base_ft.c | 68 + ompi/mca/bml/base/bml_base_init.c | 96 + ompi/mca/bml/base/owner.txt | 7 + ompi/mca/bml/bml.h | 599 ++ ompi/mca/bml/r2/Makefile.am | 43 + ompi/mca/bml/r2/bml_r2.c | 986 ++ ompi/mca/bml/r2/bml_r2.h | 72 + ompi/mca/bml/r2/bml_r2_component.c | 92 + ompi/mca/bml/r2/bml_r2_ft.c | 292 + ompi/mca/bml/r2/bml_r2_ft.h | 29 + ompi/mca/bml/r2/configure.m4 | 26 + ompi/mca/bml/r2/help-mca-bml-r2.txt | 34 + ompi/mca/bml/r2/owner.txt | 7 + ompi/mca/coll/Makefile.am | 39 + ompi/mca/coll/base/Makefile.am | 45 + ompi/mca/coll/base/README.memory_management | 124 + ompi/mca/coll/base/base.h | 130 + ompi/mca/coll/base/coll_base_allgather.c | 744 ++ ompi/mca/coll/base/coll_base_allgatherv.c | 665 ++ ompi/mca/coll/base/coll_base_allreduce.c | 915 ++ ompi/mca/coll/base/coll_base_alltoall.c | 675 ++ ompi/mca/coll/base/coll_base_alltoallv.c | 288 + ompi/mca/coll/base/coll_base_barrier.c | 436 + ompi/mca/coll/base/coll_base_bcast.c | 665 ++ ompi/mca/coll/base/coll_base_comm_select.c | 411 + ompi/mca/coll/base/coll_base_comm_unselect.c | 103 + ompi/mca/coll/base/coll_base_find_available.c | 170 + ompi/mca/coll/base/coll_base_frame.c | 130 + ompi/mca/coll/base/coll_base_functions.h | 372 + ompi/mca/coll/base/coll_base_gather.c | 411 + ompi/mca/coll/base/coll_base_reduce.c | 697 ++ ompi/mca/coll/base/coll_base_reduce_scatter.c | 616 ++ ompi/mca/coll/base/coll_base_scatter.c | 258 + ompi/mca/coll/base/coll_base_topo.c | 620 ++ ompi/mca/coll/base/coll_base_topo.h | 62 + ompi/mca/coll/base/coll_base_util.c | 89 + ompi/mca/coll/base/coll_base_util.h | 74 + ompi/mca/coll/base/coll_tags.h | 47 + ompi/mca/coll/base/help-mca-coll-base.txt | 47 + ompi/mca/coll/base/owner.txt | 7 + ompi/mca/coll/basic/Makefile.am | 69 + ompi/mca/coll/basic/coll_basic.h | 294 + ompi/mca/coll/basic/coll_basic_allgather.c | 167 + ompi/mca/coll/basic/coll_basic_allgatherv.c | 73 + ompi/mca/coll/basic/coll_basic_allreduce.c | 209 + ompi/mca/coll/basic/coll_basic_alltoall.c | 121 + ompi/mca/coll/basic/coll_basic_alltoallv.c | 111 + ompi/mca/coll/basic/coll_basic_alltoallw.c | 332 + ompi/mca/coll/basic/coll_basic_barrier.c | 132 + ompi/mca/coll/basic/coll_basic_bcast.c | 199 + ompi/mca/coll/basic/coll_basic_component.c | 113 + ompi/mca/coll/basic/coll_basic_exscan.c | 135 + ompi/mca/coll/basic/coll_basic_gather.c | 86 + ompi/mca/coll/basic/coll_basic_gatherv.c | 167 + ompi/mca/coll/basic/coll_basic_module.c | 175 + .../basic/coll_basic_neighbor_allgather.c | 253 + .../basic/coll_basic_neighbor_allgatherv.c | 233 + .../coll/basic/coll_basic_neighbor_alltoall.c | 276 + .../basic/coll_basic_neighbor_alltoallv.c | 260 + .../basic/coll_basic_neighbor_alltoallw.c | 252 + ompi/mca/coll/basic/coll_basic_reduce.c | 369 + .../coll/basic/coll_basic_reduce_scatter.c | 491 + .../basic/coll_basic_reduce_scatter_block.c | 229 + ompi/mca/coll/basic/coll_basic_scan.c | 130 + ompi/mca/coll/basic/coll_basic_scatter.c | 93 + ompi/mca/coll/basic/coll_basic_scatterv.c | 170 + ompi/mca/coll/basic/owner.txt | 7 + ompi/mca/coll/coll.h | 606 ++ ompi/mca/coll/cuda/Makefile.am | 38 + ompi/mca/coll/cuda/coll_cuda.h | 101 + ompi/mca/coll/cuda/coll_cuda_allreduce.c | 76 + ompi/mca/coll/cuda/coll_cuda_component.c | 91 + ompi/mca/coll/cuda/coll_cuda_exscan.c | 69 + ompi/mca/coll/cuda/coll_cuda_module.c | 155 + ompi/mca/coll/cuda/coll_cuda_reduce.c | 79 + .../cuda/coll_cuda_reduce_scatter_block.c | 83 + ompi/mca/coll/cuda/coll_cuda_scan.c | 75 + ompi/mca/coll/cuda/configure.m4 | 29 + ompi/mca/coll/cuda/help-mpi-coll-cuda.txt | 28 + ompi/mca/coll/cuda/owner.txt | 7 + ompi/mca/coll/demo/.opal_ignore | 0 ompi/mca/coll/demo/Makefile.am | 62 + ompi/mca/coll/demo/coll_demo.h | 252 + ompi/mca/coll/demo/coll_demo_allgather.c | 69 + ompi/mca/coll/demo/coll_demo_allgatherv.c | 72 + ompi/mca/coll/demo/coll_demo_allreduce.c | 68 + ompi/mca/coll/demo/coll_demo_alltoall.c | 72 + ompi/mca/coll/demo/coll_demo_alltoallv.c | 74 + ompi/mca/coll/demo/coll_demo_alltoallw.c | 72 + ompi/mca/coll/demo/coll_demo_barrier.c | 60 + ompi/mca/coll/demo/coll_demo_bcast.c | 66 + ompi/mca/coll/demo/coll_demo_component.c | 143 + ompi/mca/coll/demo/coll_demo_exscan.c | 51 + ompi/mca/coll/demo/coll_demo_gather.c | 71 + ompi/mca/coll/demo/coll_demo_gatherv.c | 72 + ompi/mca/coll/demo/coll_demo_module.c | 226 + ompi/mca/coll/demo/coll_demo_reduce.c | 68 + ompi/mca/coll/demo/coll_demo_reduce_scatter.c | 68 + ompi/mca/coll/demo/coll_demo_scan.c | 52 + ompi/mca/coll/demo/coll_demo_scatter.c | 74 + ompi/mca/coll/demo/coll_demo_scatterv.c | 72 + ompi/mca/coll/demo/configure.stub | 22 + ompi/mca/coll/demo/owner.txt | 7 + ompi/mca/coll/fca/Makefile.am | 46 + ompi/mca/coll/fca/coll_fca.h | 360 + ompi/mca/coll/fca/coll_fca_api.h | 117 + ompi/mca/coll/fca/coll_fca_component.c | 1539 +++ ompi/mca/coll/fca/coll_fca_convertor.h | 86 + ompi/mca/coll/fca/coll_fca_debug.h | 34 + ompi/mca/coll/fca/coll_fca_module.c | 692 ++ ompi/mca/coll/fca/coll_fca_ops.c | 632 ++ ompi/mca/coll/fca/configure.m4 | 33 + ompi/mca/coll/fca/owner.txt | 7 + ompi/mca/coll/hcoll/Makefile.am | 48 + ompi/mca/coll/hcoll/coll_hcoll.h | 317 + ompi/mca/coll/hcoll/coll_hcoll_component.c | 263 + ompi/mca/coll/hcoll/coll_hcoll_debug.h | 35 + ompi/mca/coll/hcoll/coll_hcoll_dtypes.h | 240 + ompi/mca/coll/hcoll/coll_hcoll_module.c | 424 + ompi/mca/coll/hcoll/coll_hcoll_ops.c | 724 ++ ompi/mca/coll/hcoll/coll_hcoll_rte.c | 496 + ompi/mca/coll/hcoll/configure.m4 | 38 + ompi/mca/coll/hcoll/owner.txt | 7 + ompi/mca/coll/inter/Makefile.am | 54 + ompi/mca/coll/inter/coll_inter.c | 175 + ompi/mca/coll/inter/coll_inter.h | 125 + ompi/mca/coll/inter/coll_inter_allgather.c | 116 + ompi/mca/coll/inter/coll_inter_allgatherv.c | 150 + ompi/mca/coll/inter/coll_inter_allreduce.c | 111 + ompi/mca/coll/inter/coll_inter_bcast.c | 80 + ompi/mca/coll/inter/coll_inter_component.c | 126 + ompi/mca/coll/inter/coll_inter_gather.c | 99 + ompi/mca/coll/inter/coll_inter_gatherv.c | 134 + ompi/mca/coll/inter/coll_inter_reduce.c | 98 + ompi/mca/coll/inter/coll_inter_scatter.c | 98 + ompi/mca/coll/inter/coll_inter_scatterv.c | 140 + ompi/mca/coll/inter/owner.txt | 7 + ompi/mca/coll/libnbc/Makefile.am | 76 + ompi/mca/coll/libnbc/coll_libnbc.h | 291 + ompi/mca/coll/libnbc/coll_libnbc_component.c | 368 + ompi/mca/coll/libnbc/libdict/dict.c | 106 + ompi/mca/coll/libnbc/libdict/dict.h | 140 + ompi/mca/coll/libnbc/libdict/dict_private.h | 84 + ompi/mca/coll/libnbc/libdict/hb_tree.c | 906 ++ ompi/mca/coll/libnbc/libdict/hb_tree.h | 64 + ompi/mca/coll/libnbc/nbc.c | 723 ++ ompi/mca/coll/libnbc/nbc_iallgather.c | 231 + ompi/mca/coll/libnbc/nbc_iallgatherv.c | 183 + ompi/mca/coll/libnbc/nbc_iallreduce.c | 703 ++ ompi/mca/coll/libnbc/nbc_ialltoall.c | 562 ++ ompi/mca/coll/libnbc/nbc_ialltoallv.c | 350 + ompi/mca/coll/libnbc/nbc_ialltoallw.c | 322 + ompi/mca/coll/libnbc/nbc_ibarrier.c | 205 + ompi/mca/coll/libnbc/nbc_ibcast.c | 325 + ompi/mca/coll/libnbc/nbc_ibcast_inter.c | 77 + ompi/mca/coll/libnbc/nbc_iexscan.c | 194 + ompi/mca/coll/libnbc/nbc_igather.c | 243 + ompi/mca/coll/libnbc/nbc_igatherv.c | 178 + .../mca/coll/libnbc/nbc_ineighbor_allgather.c | 168 + .../coll/libnbc/nbc_ineighbor_allgatherv.c | 170 + ompi/mca/coll/libnbc/nbc_ineighbor_alltoall.c | 171 + .../mca/coll/libnbc/nbc_ineighbor_alltoallv.c | 176 + .../mca/coll/libnbc/nbc_ineighbor_alltoallw.c | 161 + ompi/mca/coll/libnbc/nbc_internal.h | 614 ++ ompi/mca/coll/libnbc/nbc_ireduce.c | 522 + ompi/mca/coll/libnbc/nbc_ireduce_scatter.c | 332 + .../coll/libnbc/nbc_ireduce_scatter_block.c | 330 + ompi/mca/coll/libnbc/nbc_iscan.c | 173 + ompi/mca/coll/libnbc/nbc_iscatter.c | 239 + ompi/mca/coll/libnbc/nbc_iscatterv.c | 173 + ompi/mca/coll/libnbc/nbc_neighbor_helpers.c | 103 + ompi/mca/coll/libnbc/owner.txt | 7 + ompi/mca/coll/ml/Makefile.am | 89 + ompi/mca/coll/ml/coll_ml.h | 1022 ++ ompi/mca/coll/ml/coll_ml_allgather.c | 633 ++ ompi/mca/coll/ml/coll_ml_allocation.c | 213 + ompi/mca/coll/ml/coll_ml_allocation.h | 111 + ompi/mca/coll/ml/coll_ml_allreduce.c | 553 ++ ompi/mca/coll/ml/coll_ml_barrier.c | 146 + ompi/mca/coll/ml/coll_ml_bcast.c | 849 ++ ompi/mca/coll/ml/coll_ml_colls.h | 552 ++ ompi/mca/coll/ml/coll_ml_component.c | 449 + ompi/mca/coll/ml/coll_ml_config.c | 613 ++ ompi/mca/coll/ml/coll_ml_config.h | 23 + ompi/mca/coll/ml/coll_ml_copy_fns.c | 131 + ompi/mca/coll/ml/coll_ml_custom_utils.c | 139 + ompi/mca/coll/ml/coll_ml_custom_utils.h | 28 + ompi/mca/coll/ml/coll_ml_descriptors.c | 60 + ompi/mca/coll/ml/coll_ml_functions.h | 132 + .../ml/coll_ml_hier_algorithm_memsync_setup.c | 195 + ompi/mca/coll/ml/coll_ml_hier_algorithms.c | 188 + .../coll_ml_hier_algorithms_allgather_setup.c | 240 + .../coll_ml_hier_algorithms_allreduce_setup.c | 434 + .../coll_ml_hier_algorithms_barrier_setup.c | 206 + .../ml/coll_ml_hier_algorithms_bcast_setup.c | 851 ++ .../ml/coll_ml_hier_algorithms_common_setup.c | 142 + .../ml/coll_ml_hier_algorithms_common_setup.h | 96 + .../ml/coll_ml_hier_algorithms_reduce_setup.c | 371 + .../coll/ml/coll_ml_hier_algorithms_setup.c | 521 + ompi/mca/coll/ml/coll_ml_inlines.h | 639 ++ ompi/mca/coll/ml/coll_ml_lex.h | 40 + ompi/mca/coll/ml/coll_ml_lex.l | 141 + ompi/mca/coll/ml/coll_ml_lmngr.c | 330 + ompi/mca/coll/ml/coll_ml_lmngr.h | 81 + ompi/mca/coll/ml/coll_ml_mca.c | 300 + ompi/mca/coll/ml/coll_ml_mca.h | 20 + ompi/mca/coll/ml/coll_ml_memsync.c | 175 + ompi/mca/coll/ml/coll_ml_module.c | 3122 ++++++ ompi/mca/coll/ml/coll_ml_payload_buffers.h | 168 + ompi/mca/coll/ml/coll_ml_progress.c | 104 + ompi/mca/coll/ml/coll_ml_reduce.c | 528 + ompi/mca/coll/ml/coll_ml_resource_affinity.c | 147 + ompi/mca/coll/ml/coll_ml_resource_affinity.h | 19 + ompi/mca/coll/ml/coll_ml_select.c | 358 + ompi/mca/coll/ml/coll_ml_select.h | 29 + ompi/mca/coll/ml/common_sym_whitelist.txt | 4 + ompi/mca/coll/ml/help-mpi-coll-ml.txt | 64 + ompi/mca/coll/ml/mca-coll-ml.config | 170 + ompi/mca/coll/ml/owner.txt | 7 + ompi/mca/coll/portals4/Makefile.am | 41 + ompi/mca/coll/portals4/coll_portals4.h | 469 + .../coll/portals4/coll_portals4_allreduce.c | 426 + .../mca/coll/portals4/coll_portals4_barrier.c | 319 + ompi/mca/coll/portals4/coll_portals4_bcast.c | 950 ++ .../coll/portals4/coll_portals4_component.c | 765 ++ ompi/mca/coll/portals4/coll_portals4_gather.c | 1385 +++ ompi/mca/coll/portals4/coll_portals4_reduce.c | 449 + .../mca/coll/portals4/coll_portals4_request.c | 54 + .../mca/coll/portals4/coll_portals4_request.h | 191 + .../mca/coll/portals4/coll_portals4_scatter.c | 799 ++ ompi/mca/coll/portals4/configure.m4 | 35 + ompi/mca/coll/portals4/owner.txt | 7 + ompi/mca/coll/self/Makefile.am | 60 + ompi/mca/coll/self/coll_self.h | 155 + ompi/mca/coll/self/coll_self_allgather.c | 47 + ompi/mca/coll/self/coll_self_allgatherv.c | 54 + ompi/mca/coll/self/coll_self_allreduce.c | 46 + ompi/mca/coll/self/coll_self_alltoall.c | 49 + ompi/mca/coll/self/coll_self_alltoallv.c | 63 + ompi/mca/coll/self/coll_self_alltoallw.c | 63 + ompi/mca/coll/self/coll_self_barrier.c | 38 + ompi/mca/coll/self/coll_self_bcast.c | 41 + ompi/mca/coll/self/coll_self_component.c | 102 + ompi/mca/coll/self/coll_self_exscan.c | 43 + ompi/mca/coll/self/coll_self_gather.c | 48 + ompi/mca/coll/self/coll_self_gatherv.c | 55 + ompi/mca/coll/self/coll_self_module.c | 118 + ompi/mca/coll/self/coll_self_reduce.c | 46 + ompi/mca/coll/self/coll_self_reduce_scatter.c | 46 + ompi/mca/coll/self/coll_self_scan.c | 46 + ompi/mca/coll/self/coll_self_scatter.c | 49 + ompi/mca/coll/self/coll_self_scatterv.c | 54 + ompi/mca/coll/self/owner.txt | 7 + ompi/mca/coll/sm/Makefile.am | 69 + ompi/mca/coll/sm/coll_sm.h | 455 + ompi/mca/coll/sm/coll_sm_allgather.c | 41 + ompi/mca/coll/sm/coll_sm_allgatherv.c | 42 + ompi/mca/coll/sm/coll_sm_allreduce.c | 62 + ompi/mca/coll/sm/coll_sm_alltoall.c | 41 + ompi/mca/coll/sm/coll_sm_alltoallv.c | 42 + ompi/mca/coll/sm/coll_sm_alltoallw.c | 42 + ompi/mca/coll/sm/coll_sm_barrier.c | 123 + ompi/mca/coll/sm/coll_sm_bcast.c | 260 + ompi/mca/coll/sm/coll_sm_component.c | 257 + ompi/mca/coll/sm/coll_sm_exscan.c | 41 + ompi/mca/coll/sm/coll_sm_gather.c | 41 + ompi/mca/coll/sm/coll_sm_gatherv.c | 42 + ompi/mca/coll/sm/coll_sm_module.c | 611 ++ ompi/mca/coll/sm/coll_sm_reduce.c | 568 ++ ompi/mca/coll/sm/coll_sm_reduce_scatter.c | 41 + ompi/mca/coll/sm/coll_sm_scan.c | 41 + ompi/mca/coll/sm/coll_sm_scatter.c | 41 + ompi/mca/coll/sm/coll_sm_scatterv.c | 42 + ompi/mca/coll/sm/help-mpi-coll-sm.txt | 36 + ompi/mca/coll/sm/memory-layout.ppt | Bin 0 -> 104447 bytes ompi/mca/coll/sm/owner.txt | 7 + ompi/mca/coll/sync/Makefile.am | 52 + ompi/mca/coll/sync/coll_sync.h | 184 + ompi/mca/coll/sync/coll_sync_bcast.c | 47 + ompi/mca/coll/sync/coll_sync_component.c | 104 + ompi/mca/coll/sync/coll_sync_exscan.c | 47 + ompi/mca/coll/sync/coll_sync_gather.c | 50 + ompi/mca/coll/sync/coll_sync_gatherv.c | 51 + ompi/mca/coll/sync/coll_sync_module.c | 203 + ompi/mca/coll/sync/coll_sync_reduce.c | 47 + ompi/mca/coll/sync/coll_sync_reduce_scatter.c | 50 + ompi/mca/coll/sync/coll_sync_scan.c | 46 + ompi/mca/coll/sync/coll_sync_scatter.c | 50 + ompi/mca/coll/sync/coll_sync_scatterv.c | 50 + ompi/mca/coll/sync/help-coll-sync.txt | 22 + ompi/mca/coll/sync/owner.txt | 7 + ompi/mca/coll/tuned/Makefile.am | 61 + ompi/mca/coll/tuned/coll_tuned.h | 198 + .../tuned/coll_tuned_allgather_decision.c | 169 + .../tuned/coll_tuned_allgatherv_decision.c | 166 + .../tuned/coll_tuned_allreduce_decision.c | 149 + .../coll/tuned/coll_tuned_alltoall_decision.c | 171 + .../tuned/coll_tuned_alltoallv_decision.c | 120 + .../coll/tuned/coll_tuned_barrier_decision.c | 108 + .../coll/tuned/coll_tuned_bcast_decision.c | 150 + ompi/mca/coll/tuned/coll_tuned_component.c | 275 + .../coll/tuned/coll_tuned_decision_dynamic.c | 612 ++ .../coll/tuned/coll_tuned_decision_fixed.c | 770 ++ ompi/mca/coll/tuned/coll_tuned_dynamic_file.c | 288 + ompi/mca/coll/tuned/coll_tuned_dynamic_file.h | 36 + .../mca/coll/tuned/coll_tuned_dynamic_rules.c | 391 + .../mca/coll/tuned/coll_tuned_dynamic_rules.h | 104 + .../coll/tuned/coll_tuned_gather_decision.c | 159 + ompi/mca/coll/tuned/coll_tuned_module.c | 288 + .../coll/tuned/coll_tuned_reduce_decision.c | 180 + .../coll_tuned_reduce_scatter_decision.c | 146 + .../coll/tuned/coll_tuned_scatter_decision.c | 152 + ompi/mca/coll/tuned/owner.txt | 7 + ompi/mca/common/Makefile.am | 25 + ompi/mca/common/ompio/Makefile.am | 101 + ompi/mca/common/ompio/common_ompio.h | 91 + .../mca/common/ompio/common_ompio_file_open.c | 459 + .../mca/common/ompio/common_ompio_file_read.c | 388 + .../mca/common/ompio/common_ompio_file_view.c | 280 + .../common/ompio/common_ompio_file_write.c | 448 + .../common/ompio/common_ompio_print_queue.c | 230 + .../common/ompio/common_ompio_print_queue.h | 70 + ompi/mca/common/ompio/configure.m4 | 22 + ompi/mca/crcp/Makefile.am | 50 + ompi/mca/crcp/base/Makefile.am | 27 + ompi/mca/crcp/base/base.h | 201 + ompi/mca/crcp/base/crcp_base_fns.c | 436 + ompi/mca/crcp/base/crcp_base_frame.c | 52 + ompi/mca/crcp/base/crcp_base_select.c | 180 + ompi/mca/crcp/base/owner.txt | 7 + ompi/mca/crcp/bkmrk/Makefile.am | 44 + ompi/mca/crcp/bkmrk/configure.m4 | 28 + ompi/mca/crcp/bkmrk/crcp_bkmrk.h | 68 + ompi/mca/crcp/bkmrk/crcp_bkmrk_btl.c | 180 + ompi/mca/crcp/bkmrk/crcp_bkmrk_btl.h | 124 + ompi/mca/crcp/bkmrk/crcp_bkmrk_component.c | 146 + ompi/mca/crcp/bkmrk/crcp_bkmrk_module.c | 167 + ompi/mca/crcp/bkmrk/crcp_bkmrk_pml.c | 6490 +++++++++++++ ompi/mca/crcp/bkmrk/crcp_bkmrk_pml.h | 457 + ompi/mca/crcp/bkmrk/owner.txt | 7 + ompi/mca/crcp/crcp.h | 383 + ompi/mca/crcp/ompi_crcp.7in | 93 + ompi/mca/fbtl/Makefile.am | 40 + ompi/mca/fbtl/base/Makefile.am | 27 + ompi/mca/fbtl/base/base.h | 58 + ompi/mca/fbtl/base/fbtl_base_file_select.c | 259 + ompi/mca/fbtl/base/fbtl_base_file_unselect.c | 41 + ompi/mca/fbtl/base/fbtl_base_find_available.c | 128 + ompi/mca/fbtl/base/fbtl_base_frame.c | 50 + ompi/mca/fbtl/base/owner.txt | 7 + ompi/mca/fbtl/configure.m4 | 28 + ompi/mca/fbtl/fbtl.h | 163 + ompi/mca/fbtl/plfs/Makefile.am | 54 + ompi/mca/fbtl/plfs/configure.m4 | 42 + ompi/mca/fbtl/plfs/fbtl_plfs.c | 85 + ompi/mca/fbtl/plfs/fbtl_plfs.h | 64 + ompi/mca/fbtl/plfs/fbtl_plfs_component.c | 65 + ompi/mca/fbtl/plfs/fbtl_plfs_ipreadv.c | 33 + ompi/mca/fbtl/plfs/fbtl_plfs_ipwritev.c | 33 + ompi/mca/fbtl/plfs/fbtl_plfs_preadv.c | 55 + ompi/mca/fbtl/plfs/fbtl_plfs_pwritev.c | 54 + ompi/mca/fbtl/plfs/owner.txt | 7 + ompi/mca/fbtl/posix/Makefile.am | 50 + ompi/mca/fbtl/posix/configure.m4 | 41 + ompi/mca/fbtl/posix/fbtl_posix.c | 211 + ompi/mca/fbtl/posix/fbtl_posix.h | 89 + ompi/mca/fbtl/posix/fbtl_posix_component.c | 65 + ompi/mca/fbtl/posix/fbtl_posix_ipreadv.c | 104 + ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c | 104 + ompi/mca/fbtl/posix/fbtl_posix_preadv.c | 114 + ompi/mca/fbtl/posix/fbtl_posix_pwritev.c | 124 + ompi/mca/fbtl/posix/owner.txt | 7 + ompi/mca/fbtl/pvfs2/Makefile.am | 54 + ompi/mca/fbtl/pvfs2/configure.m4 | 43 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2.c | 87 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2.h | 75 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2_component.c | 65 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2_ipreadv.c | 33 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2_ipwritev.c | 33 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2_preadv.c | 147 + ompi/mca/fbtl/pvfs2/fbtl_pvfs2_pwritev.c | 157 + ompi/mca/fbtl/pvfs2/owner.txt | 7 + ompi/mca/fcoll/Makefile.am | 40 + ompi/mca/fcoll/base/Makefile.am | 30 + ompi/mca/fcoll/base/base.h | 59 + ompi/mca/fcoll/base/fcoll_base_coll_array.c | 497 + ompi/mca/fcoll/base/fcoll_base_coll_array.h | 108 + ompi/mca/fcoll/base/fcoll_base_file_select.c | 287 + .../mca/fcoll/base/fcoll_base_file_unselect.c | 41 + .../fcoll/base/fcoll_base_find_available.c | 126 + ompi/mca/fcoll/base/fcoll_base_frame.c | 46 + ompi/mca/fcoll/base/fcoll_base_sort.c | 131 + ompi/mca/fcoll/base/owner.txt | 7 + ompi/mca/fcoll/configure.m4 | 28 + ompi/mca/fcoll/dynamic/Makefile.am | 47 + ompi/mca/fcoll/dynamic/fcoll_dynamic.h | 69 + .../fcoll/dynamic/fcoll_dynamic_component.c | 90 + .../dynamic/fcoll_dynamic_file_read_all.c | 1075 +++ .../dynamic/fcoll_dynamic_file_write_all.c | 1186 +++ ompi/mca/fcoll/dynamic/fcoll_dynamic_module.c | 90 + ompi/mca/fcoll/dynamic/owner.txt | 7 + ompi/mca/fcoll/dynamic_gen2/Makefile.am | 47 + .../fcoll/dynamic_gen2/fcoll_dynamic_gen2.h | 71 + .../fcoll_dynamic_gen2_component.c | 106 + .../fcoll_dynamic_gen2_file_read_all.c | 1075 +++ .../fcoll_dynamic_gen2_file_write_all.c | 1709 ++++ .../dynamic_gen2/fcoll_dynamic_gen2_module.c | 90 + ompi/mca/fcoll/dynamic_gen2/owner.txt | 7 + ompi/mca/fcoll/fcoll.h | 177 + ompi/mca/fcoll/individual/Makefile.am | 47 + ompi/mca/fcoll/individual/fcoll_individual.h | 69 + .../individual/fcoll_individual_component.c | 92 + .../fcoll_individual_file_read_all.c | 41 + .../fcoll_individual_file_write_all.c | 40 + .../individual/fcoll_individual_module.c | 93 + ompi/mca/fcoll/individual/owner.txt | 7 + ompi/mca/fcoll/static/Makefile.am | 47 + ompi/mca/fcoll/static/fcoll_static.h | 68 + .../mca/fcoll/static/fcoll_static_component.c | 93 + .../fcoll/static/fcoll_static_file_read_all.c | 1187 +++ .../static/fcoll_static_file_write_all.c | 1197 +++ ompi/mca/fcoll/static/fcoll_static_module.c | 90 + ompi/mca/fcoll/static/owner.txt | 7 + ompi/mca/fcoll/two_phase/Makefile.am | 48 + ompi/mca/fcoll/two_phase/fcoll_two_phase.h | 116 + .../two_phase/fcoll_two_phase_component.c | 93 + .../two_phase/fcoll_two_phase_file_read_all.c | 1170 +++ .../fcoll_two_phase_file_write_all.c | 1511 +++ .../fcoll/two_phase/fcoll_two_phase_module.c | 90 + .../two_phase/fcoll_two_phase_support_fns.c | 528 + ompi/mca/fcoll/two_phase/owner.txt | 7 + ompi/mca/fs/Makefile.am | 40 + ompi/mca/fs/base/Makefile.am | 28 + ompi/mca/fs/base/base.h | 60 + ompi/mca/fs/base/fs_base_file_select.c | 254 + ompi/mca/fs/base/fs_base_file_unselect.c | 42 + ompi/mca/fs/base/fs_base_find_available.c | 128 + ompi/mca/fs/base/fs_base_frame.c | 34 + ompi/mca/fs/base/fs_base_get_parent_dir.c | 124 + ompi/mca/fs/base/owner.txt | 7 + ompi/mca/fs/configure.m4 | 28 + ompi/mca/fs/fs.h | 151 + ompi/mca/fs/lustre/.opal_unignore | 1 + ompi/mca/fs/lustre/Makefile.am | 56 + ompi/mca/fs/lustre/configure.m4 | 47 + ompi/mca/fs/lustre/fs_lustre.c | 140 + ompi/mca/fs/lustre/fs_lustre.h | 90 + ompi/mca/fs/lustre/fs_lustre_component.c | 98 + ompi/mca/fs/lustre/fs_lustre_file_close.c | 44 + ompi/mca/fs/lustre/fs_lustre_file_delete.c | 48 + ompi/mca/fs/lustre/fs_lustre_file_get_size.c | 50 + ompi/mca/fs/lustre/fs_lustre_file_open.c | 159 + ompi/mca/fs/lustre/fs_lustre_file_set_size.c | 53 + ompi/mca/fs/lustre/fs_lustre_file_sync.c | 47 + ompi/mca/fs/lustre/owner.txt | 7 + ompi/mca/fs/plfs/Makefile.am | 56 + ompi/mca/fs/plfs/configure.m4 | 41 + ompi/mca/fs/plfs/fs_plfs.c | 154 + ompi/mca/fs/plfs/fs_plfs.h | 82 + ompi/mca/fs/plfs/fs_plfs_component.c | 81 + ompi/mca/fs/plfs/fs_plfs_file_close.c | 84 + ompi/mca/fs/plfs/fs_plfs_file_delete.c | 50 + ompi/mca/fs/plfs/fs_plfs_file_get_size.c | 56 + ompi/mca/fs/plfs/fs_plfs_file_open.c | 111 + ompi/mca/fs/plfs/fs_plfs_file_set_size.c | 41 + ompi/mca/fs/plfs/fs_plfs_file_sync.c | 45 + ompi/mca/fs/plfs/owner.txt | 7 + ompi/mca/fs/pvfs2/Makefile.am | 56 + ompi/mca/fs/pvfs2/configure.m4 | 47 + ompi/mca/fs/pvfs2/fs_pvfs2.c | 143 + ompi/mca/fs/pvfs2/fs_pvfs2.h | 100 + ompi/mca/fs/pvfs2/fs_pvfs2_component.c | 98 + ompi/mca/fs/pvfs2/fs_pvfs2_file_close.c | 54 + ompi/mca/fs/pvfs2/fs_pvfs2_file_delete.c | 79 + ompi/mca/fs/pvfs2/fs_pvfs2_file_get_size.c | 58 + ompi/mca/fs/pvfs2/fs_pvfs2_file_open.c | 320 + ompi/mca/fs/pvfs2/fs_pvfs2_file_set_size.c | 72 + ompi/mca/fs/pvfs2/fs_pvfs2_file_sync.c | 64 + ompi/mca/fs/pvfs2/owner.txt | 7 + ompi/mca/fs/ufs/Makefile.am | 52 + ompi/mca/fs/ufs/fs_ufs.c | 95 + ompi/mca/fs/ufs/fs_ufs.h | 80 + ompi/mca/fs/ufs/fs_ufs_component.c | 65 + ompi/mca/fs/ufs/fs_ufs_file_close.c | 50 + ompi/mca/fs/ufs/fs_ufs_file_delete.c | 48 + ompi/mca/fs/ufs/fs_ufs_file_get_size.c | 52 + ompi/mca/fs/ufs/fs_ufs_file_open.c | 98 + ompi/mca/fs/ufs/fs_ufs_file_set_size.c | 55 + ompi/mca/fs/ufs/fs_ufs_file_sync.c | 40 + ompi/mca/fs/ufs/owner.txt | 7 + ompi/mca/io/Makefile.am | 39 + ompi/mca/io/base/Makefile.am | 29 + ompi/mca/io/base/base.h | 175 + ompi/mca/io/base/io_base_component_list.c | 0 ompi/mca/io/base/io_base_delete.c | 378 + ompi/mca/io/base/io_base_file_select.c | 472 + ompi/mca/io/base/io_base_find_available.c | 156 + ompi/mca/io/base/io_base_frame.c | 45 + ompi/mca/io/base/io_base_register_datarep.c | 64 + ompi/mca/io/base/io_base_request.c | 49 + ompi/mca/io/base/io_base_request.h | 65 + ompi/mca/io/base/owner.txt | 7 + ompi/mca/io/configure.m4 | 40 + ompi/mca/io/io.h | 381 + ompi/mca/io/ompio/Makefile.am | 60 + ompi/mca/io/ompio/configure.m4 | 21 + ompi/mca/io/ompio/io_ompio.c | 657 ++ ompi/mca/io/ompio/io_ompio.h | 590 ++ ompi/mca/io/ompio/io_ompio_aggregators.c | 1282 +++ ompi/mca/io/ompio/io_ompio_aggregators.h | 104 + ompi/mca/io/ompio/io_ompio_component.c | 330 + ompi/mca/io/ompio/io_ompio_file_open.c | 592 ++ ompi/mca/io/ompio/io_ompio_file_read.c | 438 + ompi/mca/io/ompio/io_ompio_file_set_view.c | 109 + ompi/mca/io/ompio/io_ompio_file_write.c | 453 + ompi/mca/io/ompio/io_ompio_module.c | 99 + ompi/mca/io/ompio/io_ompio_request.c | 98 + ompi/mca/io/ompio/io_ompio_request.h | 66 + ompi/mca/io/ompio/owner.txt | 7 + ompi/mca/io/romio314/.gitignore | 16 + ompi/mca/io/romio314/Makefile.am | 60 + ompi/mca/io/romio314/REFRESH_NOTES.txt | 57 + ompi/mca/io/romio314/autogen.subdirs | 1 + ompi/mca/io/romio314/configure.m4 | 108 + ompi/mca/io/romio314/ompi.patch | 971 ++ ompi/mca/io/romio314/owner.txt | 7 + ompi/mca/io/romio314/romio/.codingcheck | 55 + ompi/mca/io/romio314/romio/.config_params | 39 + ompi/mca/io/romio314/romio/COPYRIGHT | 41 + ompi/mca/io/romio314/romio/Makefile.am | 192 + ompi/mca/io/romio314/romio/Makefile.options | 36 + ompi/mca/io/romio314/romio/README | 660 ++ ompi/mca/io/romio314/romio/README_OMPI | 11 + ompi/mca/io/romio314/romio/adio/Makefile.mk | 47 + .../io/romio314/romio/adio/ad_gpfs/.gitignore | 11 + .../romio314/romio/adio/ad_gpfs/Makefile.mk | 26 + .../io/romio314/romio/adio/ad_gpfs/ad_gpfs.c | 61 + .../io/romio314/romio/adio/ad_gpfs/ad_gpfs.h | 71 + .../romio/adio/ad_gpfs/ad_gpfs_aggrs.c | 846 ++ .../romio/adio/ad_gpfs/ad_gpfs_aggrs.h | 86 + .../romio/adio/ad_gpfs/ad_gpfs_close.c | 57 + .../romio/adio/ad_gpfs/ad_gpfs_flush.c | 68 + .../romio/adio/ad_gpfs/ad_gpfs_hints.c | 288 + .../romio/adio/ad_gpfs/ad_gpfs_open.c | 156 + .../romio/adio/ad_gpfs/ad_gpfs_rdcoll.c | 1171 +++ .../romio/adio/ad_gpfs/ad_gpfs_tuning.c | 277 + .../romio/adio/ad_gpfs/ad_gpfs_tuning.h | 114 + .../romio/adio/ad_gpfs/ad_gpfs_wrcoll.c | 1696 ++++ .../romio/adio/ad_gpfs/bg/Makefile.mk | 18 + .../romio/adio/ad_gpfs/bg/ad_bg_aggrs.c | 675 ++ .../romio/adio/ad_gpfs/bg/ad_bg_aggrs.h | 33 + .../romio/adio/ad_gpfs/bg/ad_bg_pset.c | 377 + .../romio/adio/ad_gpfs/bg/ad_bg_pset.h | 83 + .../romio/adio/ad_gpfs/pe/Makefile.mk | 16 + .../romio/adio/ad_gpfs/pe/ad_pe_aggrs.c | 276 + .../romio/adio/ad_gpfs/pe/ad_pe_aggrs.h | 30 + .../romio/adio/ad_gridftp/Makefile.mk | 27 + .../romio/adio/ad_gridftp/ad_gridftp.c | 37 + .../romio/adio/ad_gridftp/ad_gridftp.h | 96 + .../romio/adio/ad_gridftp/ad_gridftp_close.c | 50 + .../romio/adio/ad_gridftp/ad_gridftp_delete.c | 95 + .../romio/adio/ad_gridftp/ad_gridftp_fcntl.c | 91 + .../adio/ad_gridftp/ad_gridftp_features.c | 18 + .../romio/adio/ad_gridftp/ad_gridftp_flush.c | 19 + .../romio/adio/ad_gridftp/ad_gridftp_hints.c | 68 + .../romio/adio/ad_gridftp/ad_gridftp_open.c | 343 + .../romio/adio/ad_gridftp/ad_gridftp_read.c | 468 + .../romio/adio/ad_gridftp/ad_gridftp_resize.c | 241 + .../romio/adio/ad_gridftp/ad_gridftp_write.c | 473 + .../romio/adio/ad_gridftp/globus_routines.c | 36 + .../io/romio314/romio/adio/ad_hfs/Makefile.mk | 21 + ompi/mca/io/romio314/romio/adio/ad_hfs/README | 1 + .../io/romio314/romio/adio/ad_hfs/ad_hfs.c | 36 + .../io/romio314/romio/adio/ad_hfs/ad_hfs.h | 34 + .../romio314/romio/adio/ad_hfs/ad_hfs_fcntl.c | 113 + .../romio314/romio/adio/ad_hfs/ad_hfs_open.c | 67 + .../romio314/romio/adio/ad_hfs/ad_hfs_read.c | 71 + .../romio/adio/ad_hfs/ad_hfs_resize.c | 31 + .../romio314/romio/adio/ad_hfs/ad_hfs_write.c | 70 + .../romio314/romio/adio/ad_lustre/Makefile.mk | 22 + .../io/romio314/romio/adio/ad_lustre/README | 55 + .../romio314/romio/adio/ad_lustre/ad_lustre.c | 44 + .../romio314/romio/adio/ad_lustre/ad_lustre.h | 91 + .../adio/ad_lustre/ad_lustre_aggregate.c | 322 + .../romio/adio/ad_lustre/ad_lustre_fcntl.c | 97 + .../romio/adio/ad_lustre/ad_lustre_hints.c | 134 + .../romio/adio/ad_lustre/ad_lustre_open.c | 175 + .../romio/adio/ad_lustre/ad_lustre_rwcontig.c | 203 + .../romio/adio/ad_lustre/ad_lustre_wrcoll.c | 989 ++ .../romio/adio/ad_lustre/ad_lustre_wrstr.c | 533 ++ .../io/romio314/romio/adio/ad_nfs/Makefile.mk | 28 + .../io/romio314/romio/adio/ad_nfs/ad_nfs.c | 41 + .../io/romio314/romio/adio/ad_nfs/ad_nfs.h | 83 + .../romio314/romio/adio/ad_nfs/ad_nfs_done.c | 19 + .../romio314/romio/adio/ad_nfs/ad_nfs_fcntl.c | 65 + .../romio/adio/ad_nfs/ad_nfs_features.c | 24 + .../romio314/romio/adio/ad_nfs/ad_nfs_getsh.c | 105 + .../romio314/romio/adio/ad_nfs/ad_nfs_hints.c | 13 + .../romio314/romio/adio/ad_nfs/ad_nfs_iread.c | 37 + .../romio/adio/ad_nfs/ad_nfs_iwrite.c | 130 + .../romio314/romio/adio/ad_nfs/ad_nfs_open.c | 58 + .../romio314/romio/adio/ad_nfs/ad_nfs_read.c | 553 ++ .../romio/adio/ad_nfs/ad_nfs_resize.c | 35 + .../romio314/romio/adio/ad_nfs/ad_nfs_setsh.c | 74 + .../romio314/romio/adio/ad_nfs/ad_nfs_wait.c | 20 + .../romio314/romio/adio/ad_nfs/ad_nfs_write.c | 679 ++ .../io/romio314/romio/adio/ad_ntfs/ad_ntfs.c | 38 + .../io/romio314/romio/adio/ad_ntfs/ad_ntfs.h | 68 + .../romio/adio/ad_ntfs/ad_ntfs_close.c | 30 + .../romio/adio/ad_ntfs/ad_ntfs_done.c | 20 + .../romio/adio/ad_ntfs/ad_ntfs_fcntl.c | 76 + .../romio/adio/ad_ntfs/ad_ntfs_feature.c | 26 + .../romio/adio/ad_ntfs/ad_ntfs_flush.c | 32 + .../romio/adio/ad_ntfs/ad_ntfs_iread.c | 42 + .../romio/adio/ad_ntfs/ad_ntfs_iwrite.c | 303 + .../romio/adio/ad_ntfs/ad_ntfs_open.c | 101 + .../romio/adio/ad_ntfs/ad_ntfs_read.c | 259 + .../romio/adio/ad_ntfs/ad_ntfs_resize.c | 51 + .../romio/adio/ad_ntfs/ad_ntfs_wait.c | 20 + .../romio/adio/ad_ntfs/ad_ntfs_write.c | 222 + .../romio314/romio/adio/ad_panfs/Makefile.mk | 21 + .../romio314/romio/adio/ad_panfs/ad_panfs.c | 45 + .../romio314/romio/adio/ad_panfs/ad_panfs.h | 62 + .../romio/adio/ad_panfs/ad_panfs_hints.c | 72 + .../romio/adio/ad_panfs/ad_panfs_open.c | 348 + .../romio/adio/ad_panfs/ad_panfs_read.c | 68 + .../romio/adio/ad_panfs/ad_panfs_resize.c | 49 + .../romio/adio/ad_panfs/ad_panfs_write.c | 68 + .../io/romio314/romio/adio/ad_pfs/Makefile.mk | 26 + .../io/romio314/romio/adio/ad_pfs/ad_pfs.c | 36 + .../io/romio314/romio/adio/ad_pfs/ad_pfs.h | 62 + .../romio314/romio/adio/ad_pfs/ad_pfs_done.c | 57 + .../romio314/romio/adio/ad_pfs/ad_pfs_fcntl.c | 81 + .../romio314/romio/adio/ad_pfs/ad_pfs_flush.c | 38 + .../romio314/romio/adio/ad_pfs/ad_pfs_hints.c | 174 + .../romio314/romio/adio/ad_pfs/ad_pfs_iread.c | 81 + .../romio/adio/ad_pfs/ad_pfs_iwrite.c | 80 + .../romio314/romio/adio/ad_pfs/ad_pfs_open.c | 85 + .../romio314/romio/adio/ad_pfs/ad_pfs_read.c | 48 + .../romio314/romio/adio/ad_pfs/ad_pfs_wait.c | 62 + .../romio314/romio/adio/ad_pfs/ad_pfs_write.c | 49 + .../romio314/romio/adio/ad_piofs/Makefile.mk | 21 + .../io/romio314/romio/adio/ad_piofs/README | 1 + .../romio314/romio/adio/ad_piofs/ad_piofs.c | 37 + .../romio314/romio/adio/ad_piofs/ad_piofs.h | 40 + .../romio/adio/ad_piofs/ad_piofs_fcntl.c | 77 + .../romio/adio/ad_piofs/ad_piofs_features.c | 19 + .../romio/adio/ad_piofs/ad_piofs_hints.c | 118 + .../romio/adio/ad_piofs/ad_piofs_open.c | 79 + .../romio/adio/ad_piofs/ad_piofs_read.c | 56 + .../romio/adio/ad_piofs/ad_piofs_write.c | 344 + .../romio314/romio/adio/ad_pvfs/Makefile.mk | 26 + .../io/romio314/romio/adio/ad_pvfs/ad_pvfs.c | 37 + .../io/romio314/romio/adio/ad_pvfs/ad_pvfs.h | 54 + .../romio/adio/ad_pvfs/ad_pvfs_close.c | 31 + .../romio/adio/ad_pvfs/ad_pvfs_delete.c | 24 + .../romio/adio/ad_pvfs/ad_pvfs_fcntl.c | 72 + .../romio/adio/ad_pvfs/ad_pvfs_flush.c | 36 + .../romio/adio/ad_pvfs/ad_pvfs_hints.c | 146 + .../romio/adio/ad_pvfs/ad_pvfs_open.c | 90 + .../romio/adio/ad_pvfs/ad_pvfs_read.c | 788 ++ .../romio/adio/ad_pvfs/ad_pvfs_resize.c | 32 + .../romio/adio/ad_pvfs/ad_pvfs_write.c | 1175 +++ .../romio314/romio/adio/ad_pvfs2/Makefile.mk | 34 + .../romio314/romio/adio/ad_pvfs2/ad_pvfs2.c | 47 + .../romio314/romio/adio/ad_pvfs2/ad_pvfs2.h | 76 + .../romio/adio/ad_pvfs2/ad_pvfs2_aio.c | 230 + .../romio/adio/ad_pvfs2/ad_pvfs2_close.c | 28 + .../romio/adio/ad_pvfs2/ad_pvfs2_common.c | 150 + .../romio/adio/ad_pvfs2/ad_pvfs2_common.h | 35 + .../romio/adio/ad_pvfs2/ad_pvfs2_delete.c | 69 + .../romio/adio/ad_pvfs2/ad_pvfs2_fcntl.c | 59 + .../romio/adio/ad_pvfs2/ad_pvfs2_features.c | 23 + .../romio/adio/ad_pvfs2/ad_pvfs2_flush.c | 55 + .../romio/adio/ad_pvfs2/ad_pvfs2_hints.c | 120 + .../romio/adio/ad_pvfs2/ad_pvfs2_io.h | 79 + .../romio/adio/ad_pvfs2/ad_pvfs2_io_dtype.c | 739 ++ .../romio/adio/ad_pvfs2/ad_pvfs2_io_list.c | 665 ++ .../romio/adio/ad_pvfs2/ad_pvfs2_open.c | 246 + .../romio/adio/ad_pvfs2/ad_pvfs2_read.c | 169 + .../ad_pvfs2/ad_pvfs2_read_list_classic.c | 913 ++ .../romio/adio/ad_pvfs2/ad_pvfs2_resize.c | 56 + .../romio/adio/ad_pvfs2/ad_pvfs2_write.c | 182 + .../ad_pvfs2/ad_pvfs2_write_list_classic.c | 967 ++ .../io/romio314/romio/adio/ad_sfs/Makefile.mk | 19 + ompi/mca/io/romio314/romio/adio/ad_sfs/README | 1 + .../io/romio314/romio/adio/ad_sfs/ad_sfs.c | 36 + .../io/romio314/romio/adio/ad_sfs/ad_sfs.h | 21 + .../romio314/romio/adio/ad_sfs/ad_sfs_fcntl.c | 64 + .../romio314/romio/adio/ad_sfs/ad_sfs_flush.c | 27 + .../romio314/romio/adio/ad_sfs/ad_sfs_open.c | 57 + .../romio314/romio/adio/ad_testfs/Makefile.mk | 32 + .../romio314/romio/adio/ad_testfs/ad_testfs.c | 39 + .../romio314/romio/adio/ad_testfs/ad_testfs.h | 85 + .../romio/adio/ad_testfs/ad_testfs_close.c | 22 + .../romio/adio/ad_testfs/ad_testfs_delete.c | 21 + .../romio/adio/ad_testfs/ad_testfs_done.c | 39 + .../romio/adio/ad_testfs/ad_testfs_fcntl.c | 49 + .../romio/adio/ad_testfs/ad_testfs_flush.c | 21 + .../romio/adio/ad_testfs/ad_testfs_getsh.c | 23 + .../romio/adio/ad_testfs/ad_testfs_hints.c | 27 + .../romio/adio/ad_testfs/ad_testfs_iread.c | 62 + .../romio/adio/ad_testfs/ad_testfs_iwrite.c | 68 + .../romio/adio/ad_testfs/ad_testfs_open.c | 23 + .../romio/adio/ad_testfs/ad_testfs_rdcoll.c | 29 + .../romio/adio/ad_testfs/ad_testfs_read.c | 62 + .../romio/adio/ad_testfs/ad_testfs_resize.c | 21 + .../romio/adio/ad_testfs/ad_testfs_seek.c | 82 + .../romio/adio/ad_testfs/ad_testfs_setsh.c | 22 + .../romio/adio/ad_testfs/ad_testfs_wait.c | 39 + .../romio/adio/ad_testfs/ad_testfs_wrcoll.c | 29 + .../romio/adio/ad_testfs/ad_testfs_write.c | 63 + .../io/romio314/romio/adio/ad_ufs/Makefile.mk | 17 + .../io/romio314/romio/adio/ad_ufs/ad_ufs.c | 44 + .../io/romio314/romio/adio/ad_ufs/ad_ufs.h | 57 + .../romio314/romio/adio/ad_ufs/ad_ufs_open.c | 58 + .../io/romio314/romio/adio/ad_xfs/Makefile.mk | 22 + .../io/romio314/romio/adio/ad_xfs/ad_xfs.c | 44 + .../io/romio314/romio/adio/ad_xfs/ad_xfs.h | 39 + .../romio314/romio/adio/ad_xfs/ad_xfs_fcntl.c | 81 + .../romio314/romio/adio/ad_xfs/ad_xfs_hints.c | 97 + .../romio314/romio/adio/ad_xfs/ad_xfs_open.c | 109 + .../romio314/romio/adio/ad_xfs/ad_xfs_read.c | 152 + .../romio/adio/ad_xfs/ad_xfs_resize.c | 22 + .../romio314/romio/adio/ad_xfs/ad_xfs_write.c | 171 + .../romio314/romio/adio/ad_zoidfs/Makefile.mk | 27 + .../romio314/romio/adio/ad_zoidfs/ad_zoidfs.c | 42 + .../romio314/romio/adio/ad_zoidfs/ad_zoidfs.h | 44 + .../romio/adio/ad_zoidfs/ad_zoidfs_close.c | 25 + .../romio/adio/ad_zoidfs/ad_zoidfs_common.c | 126 + .../romio/adio/ad_zoidfs/ad_zoidfs_common.h | 43 + .../romio/adio/ad_zoidfs/ad_zoidfs_delete.c | 45 + .../romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c | 60 + .../romio/adio/ad_zoidfs/ad_zoidfs_features.c | 22 + .../romio/adio/ad_zoidfs/ad_zoidfs_flush.c | 52 + .../romio/adio/ad_zoidfs/ad_zoidfs_io.c | 96 + .../romio/adio/ad_zoidfs/ad_zoidfs_open.c | 153 + .../adio/ad_zoidfs/ad_zoidfs_read_list.c | 830 ++ .../romio/adio/ad_zoidfs/ad_zoidfs_resize.c | 53 + .../adio/ad_zoidfs/ad_zoidfs_write_list.c | 861 ++ .../io/romio314/romio/adio/common/Makefile.mk | 73 + .../romio314/romio/adio/common/ad_aggregate.c | 515 + .../romio/adio/common/ad_aggregate_new.c | 284 + .../io/romio314/romio/adio/common/ad_close.c | 120 + .../romio/adio/common/ad_coll_build_req_new.c | 2084 ++++ .../romio/adio/common/ad_coll_exch_new.c | 509 + .../io/romio314/romio/adio/common/ad_darray.c | 295 + .../io/romio314/romio/adio/common/ad_delete.c | 24 + .../io/romio314/romio/adio/common/ad_done.c | 47 + .../romio314/romio/adio/common/ad_done_fake.c | 20 + .../io/romio314/romio/adio/common/ad_end.c | 85 + .../io/romio314/romio/adio/common/ad_fcntl.c | 64 + .../romio314/romio/adio/common/ad_features.c | 26 + .../io/romio314/romio/adio/common/ad_flush.c | 35 + .../io/romio314/romio/adio/common/ad_fstype.c | 876 ++ .../romio314/romio/adio/common/ad_get_sh_fp.c | 74 + .../io/romio314/romio/adio/common/ad_hints.c | 309 + .../io/romio314/romio/adio/common/ad_init.c | 134 + .../romio314/romio/adio/common/ad_io_coll.c | 1135 +++ .../io/romio314/romio/adio/common/ad_iopen.c | 21 + .../io/romio314/romio/adio/common/ad_iread.c | 91 + .../romio/adio/common/ad_iread_fake.c | 61 + .../io/romio314/romio/adio/common/ad_iwrite.c | 342 + .../romio/adio/common/ad_iwrite_fake.c | 65 + .../io/romio314/romio/adio/common/ad_open.c | 315 + .../romio314/romio/adio/common/ad_opencoll.c | 129 + .../romio/adio/common/ad_opencoll_failsafe.c | 88 + .../romio/adio/common/ad_opencoll_scalable.c | 55 + .../romio314/romio/adio/common/ad_prealloc.c | 91 + .../io/romio314/romio/adio/common/ad_read.c | 115 + .../romio314/romio/adio/common/ad_read_coll.c | 1066 +++ .../romio314/romio/adio/common/ad_read_str.c | 407 + .../romio/adio/common/ad_read_str_naive.c | 384 + .../io/romio314/romio/adio/common/ad_resize.c | 38 + .../io/romio314/romio/adio/common/ad_seek.c | 86 + .../romio314/romio/adio/common/ad_set_sh_fp.c | 45 + .../romio314/romio/adio/common/ad_set_view.c | 77 + .../romio314/romio/adio/common/ad_subarray.c | 98 + .../romio/adio/common/ad_threaded_io.c | 32 + .../io/romio314/romio/adio/common/ad_wait.c | 47 + .../romio314/romio/adio/common/ad_wait_fake.c | 20 + .../io/romio314/romio/adio/common/ad_write.c | 114 + .../romio/adio/common/ad_write_coll.c | 1088 +++ .../romio/adio/common/ad_write_nolock.c | 410 + .../romio314/romio/adio/common/ad_write_str.c | 490 + .../romio/adio/common/ad_write_str_naive.c | 383 + .../io/romio314/romio/adio/common/adi_close.c | 45 + .../romio314/romio/adio/common/async_list.c | 170 + .../romio314/romio/adio/common/byte_offset.c | 52 + .../romio/adio/common/cb_config_list.c | 755 ++ .../romio314/romio/adio/common/eof_offset.c | 78 + .../mca/io/romio314/romio/adio/common/error.c | 127 + .../io/romio314/romio/adio/common/flatten.c | 1168 +++ .../romio314/romio/adio/common/get_fp_posn.c | 60 + .../io/romio314/romio/adio/common/greq_fns.c | 31 + .../io/romio314/romio/adio/common/heap-sort.c | 133 + .../io/romio314/romio/adio/common/hint_fns.c | 184 + .../io/romio314/romio/adio/common/iscontig.c | 105 + ompi/mca/io/romio314/romio/adio/common/lock.c | 225 + .../io/romio314/romio/adio/common/malloc.c | 113 + .../romio/adio/common/p2p_aggregation.c | 910 ++ .../romio314/romio/adio/common/req_malloc.c | 83 + .../romio314/romio/adio/common/shfp_fname.c | 115 + .../romio314/romio/adio/common/status_setb.c | 37 + .../io/romio314/romio/adio/common/strfns.c | 315 + .../romio314/romio/adio/common/system_hints.c | 191 + .../mca/io/romio314/romio/adio/common/utils.c | 138 + .../romio/adio/include/BaseIOErrMsgs.msg | 51 + .../mca/io/romio314/romio/adio/include/adio.h | 455 + .../romio/adio/include/adio_cb_config_list.h | 27 + .../romio314/romio/adio/include/adio_extern.h | 31 + .../io/romio314/romio/adio/include/adioi.h | 925 ++ .../romio/adio/include/adioi_errmsg.h | 73 + .../romio314/romio/adio/include/adioi_error.h | 183 + .../romio/adio/include/adioi_fs_proto.h | 92 + .../romio314/romio/adio/include/heap-sort.h | 22 + .../io/romio314/romio/adio/include/hint_fns.h | 23 + .../romio314/romio/adio/include/mpio_error.h | 76 + .../io/romio314/romio/adio/include/mpipr.h | 385 + .../romio/adio/include/mpiu_external32.h | 22 + .../romio314/romio/adio/include/mpiu_greq.h | 15 + .../romio314/romio/adio/include/nopackage.h | 16 + .../romio/adio/include/romioconf-undefs.h | 45 + ompi/mca/io/romio314/romio/autogen.sh | 3 + .../io/romio314/romio/confdb/aclocal_am.m4 | 6 + .../romio314/romio/confdb/aclocal_atomic.m4 | 227 + .../romio/confdb/aclocal_attr_alias.m4 | 504 + .../romio314/romio/confdb/aclocal_bugfix.m4 | 75 + .../io/romio314/romio/confdb/aclocal_cache.m4 | 372 + .../io/romio314/romio/confdb/aclocal_cc.m4 | 1692 ++++ .../romio314/romio/confdb/aclocal_coverage.m4 | 90 + .../io/romio314/romio/confdb/aclocal_cxx.m4 | 187 + .../io/romio314/romio/confdb/aclocal_f77.m4 | 1487 +++ .../romio314/romio/confdb/aclocal_f77old.m4 | 389 + .../io/romio314/romio/confdb/aclocal_fc.m4 | 1225 +++ .../io/romio314/romio/confdb/aclocal_libs.m4 | 104 + .../io/romio314/romio/confdb/aclocal_make.m4 | 315 + .../io/romio314/romio/confdb/aclocal_mpi.m4 | 519 + .../io/romio314/romio/confdb/aclocal_romio.m4 | 858 ++ .../romio314/romio/confdb/aclocal_runlog.m4 | 218 + .../io/romio314/romio/confdb/aclocal_shl.m4 | 500 + .../io/romio314/romio/confdb/aclocal_shm.m4 | 49 + .../romio314/romio/confdb/aclocal_subcfg.m4 | 261 + .../io/romio314/romio/confdb/aclocal_util.m4 | 216 + .../romio/confdb/ax_prefix_config_h.m4 | 219 + ompi/mca/io/romio314/romio/confdb/ax_tls.m4 | 74 + ompi/mca/io/romio314/romio/configure.ac | 2001 ++++ ompi/mca/io/romio314/romio/doc/README | 35 + ompi/mca/io/romio314/romio/doc/makepubpage.sh | 28 + ompi/mca/io/romio314/romio/doc/pubs.bib | 465 + ompi/mca/io/romio314/romio/doc/romio.bib | 92 + .../io/romio314/romio/doc/source-guide.tex | 494 + .../mca/io/romio314/romio/doc/users-guide.pdf | Bin 0 -> 94872 bytes .../mca/io/romio314/romio/doc/users-guide.tex | 1143 +++ .../io/romio314/romio/include/io_romio_conv.h | 124 + ompi/mca/io/romio314/romio/include/mpio.h.in | 528 + ompi/mca/io/romio314/romio/include/mpiof.h.in | 46 + ompi/mca/io/romio314/romio/localdefs.in | 4 + ompi/mca/io/romio314/romio/mpi-io/Makefile.mk | 102 + ompi/mca/io/romio314/romio/mpi-io/close.c | 105 + ompi/mca/io/romio314/romio/mpi-io/delete.c | 95 + ompi/mca/io/romio314/romio/mpi-io/file_c2f.c | 41 + ompi/mca/io/romio314/romio/mpi-io/file_f2c.c | 41 + .../romio314/romio/mpi-io/fortran/Makefile.mk | 68 + .../io/romio314/romio/mpi-io/fortran/closef.c | 102 + .../romio314/romio/mpi-io/fortran/deletef.c | 144 + .../io/romio314/romio/mpi-io/fortran/fsyncf.c | 101 + .../romio/mpi-io/fortran/get_amodef.c | 101 + .../romio314/romio/mpi-io/fortran/get_atomf.c | 102 + .../romio/mpi-io/fortran/get_bytofff.c | 101 + .../romio314/romio/mpi-io/fortran/get_errhf.c | 103 + .../romio/mpi-io/fortran/get_extentf.c | 126 + .../romio/mpi-io/fortran/get_groupf.c | 116 + .../romio314/romio/mpi-io/fortran/get_infof.c | 104 + .../romio/mpi-io/fortran/get_posn_shf.c | 102 + .../romio314/romio/mpi-io/fortran/get_posnf.c | 101 + .../romio314/romio/mpi-io/fortran/get_sizef.c | 102 + .../romio314/romio/mpi-io/fortran/get_viewf.c | 187 + .../romio314/romio/mpi-io/fortran/iotestf.c | 101 + .../romio314/romio/mpi-io/fortran/iowaitf.c | 101 + .../romio314/romio/mpi-io/fortran/iread_atf.c | 130 + .../romio314/romio/mpi-io/fortran/iread_shf.c | 124 + .../io/romio314/romio/mpi-io/fortran/ireadf.c | 124 + .../romio/mpi-io/fortran/iwrite_atf.c | 129 + .../romio/mpi-io/fortran/iwrite_shf.c | 124 + .../romio314/romio/mpi-io/fortran/iwritef.c | 125 + .../io/romio314/romio/mpi-io/fortran/openf.c | 187 + .../romio314/romio/mpi-io/fortran/preallocf.c | 102 + .../romio/mpi-io/fortran/rd_atallbf.c | 121 + .../romio/mpi-io/fortran/rd_atallef.c | 102 + .../romio/mpi-io/fortran/read_allbf.c | 120 + .../romio/mpi-io/fortran/read_allef.c | 103 + .../romio314/romio/mpi-io/fortran/read_allf.c | 120 + .../romio/mpi-io/fortran/read_atallf.c | 125 + .../romio314/romio/mpi-io/fortran/read_atf.c | 121 + .../romio/mpi-io/fortran/read_ordbf.c | 120 + .../romio/mpi-io/fortran/read_ordef.c | 103 + .../romio314/romio/mpi-io/fortran/read_ordf.c | 120 + .../romio314/romio/mpi-io/fortran/read_shf.c | 119 + .../io/romio314/romio/mpi-io/fortran/readf.c | 121 + .../romio314/romio/mpi-io/fortran/seek_shf.c | 102 + .../io/romio314/romio/mpi-io/fortran/seekf.c | 101 + .../romio314/romio/mpi-io/fortran/set_atomf.c | 102 + .../romio314/romio/mpi-io/fortran/set_errhf.c | 105 + .../romio314/romio/mpi-io/fortran/set_infof.c | 104 + .../romio314/romio/mpi-io/fortran/set_sizef.c | 102 + .../romio314/romio/mpi-io/fortran/set_viewf.c | 182 + .../romio/mpi-io/fortran/wr_atallbf.c | 122 + .../romio/mpi-io/fortran/wr_atallef.c | 103 + .../romio/mpi-io/fortran/write_allbf.c | 117 + .../romio/mpi-io/fortran/write_allef.c | 101 + .../romio/mpi-io/fortran/write_allf.c | 119 + .../romio/mpi-io/fortran/write_atallf.c | 125 + .../romio314/romio/mpi-io/fortran/write_atf.c | 125 + .../romio/mpi-io/fortran/write_ordbf.c | 119 + .../romio/mpi-io/fortran/write_ordef.c | 102 + .../romio/mpi-io/fortran/write_ordf.c | 119 + .../romio314/romio/mpi-io/fortran/write_shf.c | 121 + .../io/romio314/romio/mpi-io/fortran/writef.c | 121 + ompi/mca/io/romio314/romio/mpi-io/fsync.c | 76 + ompi/mca/io/romio314/romio/mpi-io/get_amode.c | 55 + ompi/mca/io/romio314/romio/mpi-io/get_atom.c | 55 + .../mca/io/romio314/romio/mpi-io/get_bytoff.c | 71 + ompi/mca/io/romio314/romio/mpi-io/get_errh.c | 71 + .../mca/io/romio314/romio/mpi-io/get_extent.c | 59 + ompi/mca/io/romio314/romio/mpi-io/get_group.c | 64 + ompi/mca/io/romio314/romio/mpi-io/get_info.c | 62 + ompi/mca/io/romio314/romio/mpi-io/get_posn.c | 59 + .../io/romio314/romio/mpi-io/get_posn_sh.c | 64 + ompi/mca/io/romio314/romio/mpi-io/get_size.c | 86 + ompi/mca/io/romio314/romio/mpi-io/get_view.c | 102 + .../io/romio314/romio/mpi-io/glue/Makefile.mk | 15 + .../romio/mpi-io/glue/default/Makefile.mk | 13 + .../romio/mpi-io/glue/default/mpio_err.c | 88 + .../romio/mpi-io/glue/default/mpio_file.c | 90 + .../romio314/romio/mpi-io/glue/large_count.c | 26 + .../romio/mpi-io/glue/mpich/Makefile.mk | 12 + .../romio/mpi-io/glue/mpich/mpio_err.c | 119 + .../romio/mpi-io/glue/mpich/mpio_file.c | 92 + .../romio/mpi-io/glue/openmpi/Makefile.mk | 13 + .../romio/mpi-io/glue/openmpi/mpio_err.c | 52 + .../romio/mpi-io/glue/openmpi/mpio_file.c | 95 + ompi/mca/io/romio314/romio/mpi-io/ioreq_c2f.c | 82 + ompi/mca/io/romio314/romio/mpi-io/ioreq_f2c.c | 72 + ompi/mca/io/romio314/romio/mpi-io/iotest.c | 95 + ompi/mca/io/romio314/romio/mpi-io/iotestall.c | 77 + ompi/mca/io/romio314/romio/mpi-io/iotestany.c | 81 + .../mca/io/romio314/romio/mpi-io/iotestsome.c | 86 + ompi/mca/io/romio314/romio/mpi-io/iowait.c | 96 + ompi/mca/io/romio314/romio/mpi-io/iowaitall.c | 74 + ompi/mca/io/romio314/romio/mpi-io/iowaitany.c | 84 + .../mca/io/romio314/romio/mpi-io/iowaitsome.c | 81 + ompi/mca/io/romio314/romio/mpi-io/iread.c | 161 + ompi/mca/io/romio314/romio/mpi-io/iread_at.c | 75 + ompi/mca/io/romio314/romio/mpi-io/iread_sh.c | 140 + ompi/mca/io/romio314/romio/mpi-io/iwrite.c | 168 + ompi/mca/io/romio314/romio/mpi-io/iwrite_at.c | 80 + ompi/mca/io/romio314/romio/mpi-io/iwrite_sh.c | 120 + .../io/romio314/romio/mpi-io/mpich_fileutil.c | 60 + ompi/mca/io/romio314/romio/mpi-io/mpioimpl.h | 82 + ompi/mca/io/romio314/romio/mpi-io/mpioprof.h | 215 + .../io/romio314/romio/mpi-io/mpir-mpioinit.c | 56 + .../romio314/romio/mpi-io/mpiu_external32.c | 172 + ompi/mca/io/romio314/romio/mpi-io/mpiu_greq.c | 49 + ompi/mca/io/romio314/romio/mpi-io/open.c | 209 + ompi/mca/io/romio314/romio/mpi-io/prealloc.c | 107 + ompi/mca/io/romio314/romio/mpi-io/rd_atallb.c | 54 + ompi/mca/io/romio314/romio/mpi-io/rd_atalle.c | 50 + ompi/mca/io/romio314/romio/mpi-io/read.c | 187 + ompi/mca/io/romio314/romio/mpi-io/read_all.c | 142 + ompi/mca/io/romio314/romio/mpi-io/read_allb.c | 139 + ompi/mca/io/romio314/romio/mpi-io/read_alle.c | 90 + ompi/mca/io/romio314/romio/mpi-io/read_at.c | 66 + .../mca/io/romio314/romio/mpi-io/read_atall.c | 68 + ompi/mca/io/romio314/romio/mpi-io/read_ord.c | 111 + ompi/mca/io/romio314/romio/mpi-io/read_ordb.c | 137 + ompi/mca/io/romio314/romio/mpi-io/read_orde.c | 75 + ompi/mca/io/romio314/romio/mpi-io/read_sh.c | 155 + .../romio314/romio/mpi-io/register_datarep.c | 145 + ompi/mca/io/romio314/romio/mpi-io/seek.c | 139 + ompi/mca/io/romio314/romio/mpi-io/seek_sh.c | 184 + ompi/mca/io/romio314/romio/mpi-io/set_atom.c | 91 + ompi/mca/io/romio314/romio/mpi-io/set_errh.c | 76 + ompi/mca/io/romio314/romio/mpi-io/set_info.c | 66 + ompi/mca/io/romio314/romio/mpi-io/set_size.c | 105 + ompi/mca/io/romio314/romio/mpi-io/set_view.c | 204 + ompi/mca/io/romio314/romio/mpi-io/wr_atallb.c | 53 + ompi/mca/io/romio314/romio/mpi-io/wr_atalle.c | 48 + ompi/mca/io/romio314/romio/mpi-io/write.c | 186 + ompi/mca/io/romio314/romio/mpi-io/write_all.c | 134 + .../mca/io/romio314/romio/mpi-io/write_allb.c | 132 + .../mca/io/romio314/romio/mpi-io/write_alle.c | 95 + ompi/mca/io/romio314/romio/mpi-io/write_at.c | 66 + .../io/romio314/romio/mpi-io/write_atall.c | 67 + ompi/mca/io/romio314/romio/mpi-io/write_ord.c | 128 + .../mca/io/romio314/romio/mpi-io/write_ordb.c | 132 + .../mca/io/romio314/romio/mpi-io/write_orde.c | 75 + ompi/mca/io/romio314/romio/mpi-io/write_sh.c | 149 + .../romio/mpi2-other/array/Makefile.in | 80 + .../romio314/romio/mpi2-other/array/darray.c | 209 + .../mpi2-other/array/fortran/Makefile.in | 48 + .../romio/mpi2-other/array/fortran/darrayf.c | 130 + .../mpi2-other/array/fortran/subarrayf.c | 127 + .../romio/mpi2-other/array/subarray.c | 174 + .../romio/mpi2-other/info/Makefile.in | 105 + .../romio/mpi2-other/info/fortran/Makefile.in | 65 + .../mpi2-other/info/fortran/info_createf.c | 93 + .../mpi2-other/info/fortran/info_deletef.c | 120 + .../romio/mpi2-other/info/fortran/info_dupf.c | 94 + .../mpi2-other/info/fortran/info_freef.c | 95 + .../romio/mpi2-other/info/fortran/info_getf.c | 144 + .../mpi2-other/info/fortran/info_getnksf.c | 93 + .../mpi2-other/info/fortran/info_getnthf.c | 120 + .../mpi2-other/info/fortran/info_getvlnf.c | 120 + .../romio/mpi2-other/info/fortran/info_setf.c | 146 + .../romio314/romio/mpi2-other/info/info_c2f.c | 64 + .../romio/mpi2-other/info/info_create.c | 51 + .../romio/mpi2-other/info/info_delete.c | 83 + .../romio314/romio/mpi2-other/info/info_dup.c | 66 + .../romio314/romio/mpi2-other/info/info_f2c.c | 49 + .../romio/mpi2-other/info/info_free.c | 56 + .../romio314/romio/mpi2-other/info/info_get.c | 88 + .../romio/mpi2-other/info/info_getnks.c | 55 + .../romio/mpi2-other/info/info_getnth.c | 74 + .../romio/mpi2-other/info/info_getvln.c | 76 + .../romio314/romio/mpi2-other/info/info_set.c | 98 + .../romio314/romio/test-internal/Makefile.am | 26 + .../romio/test-internal/file_realms_test.c | 76 + .../romio314/romio/test-internal/heap_test.c | 459 + .../romio/test-internal/io_bounds_test.c | 302 + ompi/mca/io/romio314/romio/test/.codingcheck | 13 + ompi/mca/io/romio314/romio/test/Makefile.am | 43 + ompi/mca/io/romio314/romio/test/Mfile.in | 84 + ompi/mca/io/romio314/romio/test/README | 84 + .../mca/io/romio314/romio/test/aggregation1.c | 266 + .../mca/io/romio314/romio/test/aggregation2.c | 89 + .../io/romio314/romio/test/async-multiple.c | 139 + ompi/mca/io/romio314/romio/test/async.c | 138 + ompi/mca/io/romio314/romio/test/atomicity.c | 210 + ompi/mca/io/romio314/romio/test/big_extents.c | 212 + ompi/mca/io/romio314/romio/test/coll_perf.c | 151 + ompi/mca/io/romio314/romio/test/coll_test.c | 206 + ompi/mca/io/romio314/romio/test/creat_excl.c | 134 + ompi/mca/io/romio314/romio/test/darray_read.c | 124 + ompi/mca/io/romio314/romio/test/error.c | 106 + ompi/mca/io/romio314/romio/test/excl.c | 84 + ompi/mca/io/romio314/romio/test/external32.c | 97 + .../io/romio314/romio/test/fcoll_test.f.in | 176 + ompi/mca/io/romio314/romio/test/file_info.c | 421 + ompi/mca/io/romio314/romio/test/fmisc.f.in | 205 + ompi/mca/io/romio314/romio/test/fperf.f.in | 180 + ompi/mca/io/romio314/romio/test/hindexed.c | 260 + ompi/mca/io/romio314/romio/test/i_noncontig.c | 267 + ompi/mca/io/romio314/romio/test/large_array.c | 145 + .../io/romio314/romio/test/large_file.c.in | 107 + ompi/mca/io/romio314/romio/test/misc.c.in | 263 + ompi/mca/io/romio314/romio/test/noncontig.c | 267 + .../io/romio314/romio/test/noncontig_coll.c | 236 + .../io/romio314/romio/test/noncontig_coll2.c | 539 ++ ompi/mca/io/romio314/romio/test/ordered_fp.c | 144 + ompi/mca/io/romio314/romio/test/perf.c | 160 + .../io/romio314/romio/test/pfcoll_test.f.in | 177 + ompi/mca/io/romio314/romio/test/psimple.c | 103 + ompi/mca/io/romio314/romio/test/rtest.in | 131 + ompi/mca/io/romio314/romio/test/runtests.in | 479 + ompi/mca/io/romio314/romio/test/shared_fp.c | 122 + ompi/mca/io/romio314/romio/test/simple.c | 119 + ompi/mca/io/romio314/romio/test/split_coll.c | 160 + ompi/mca/io/romio314/romio/test/status.c | 93 + .../io/romio314/romio/test/types_with_zeros.c | 139 + ompi/mca/io/romio314/romio/util/nfslock.c | 72 + .../io/romio314/romio/util/romioinstall.in | 220 + ompi/mca/io/romio314/romio/util/tarch | 120 + ompi/mca/io/romio314/src/Makefile.extra | 47 + ompi/mca/io/romio314/src/io_romio314.h | 276 + .../io/romio314/src/io_romio314_component.c | 265 + .../io/romio314/src/io_romio314_file_open.c | 369 + .../io/romio314/src/io_romio314_file_read.c | 327 + .../io/romio314/src/io_romio314_file_write.c | 322 + ompi/mca/io/romio314/src/io_romio314_module.c | 150 + ompi/mca/mca.h | 39 + ompi/mca/mtl/Makefile.am | 38 + ompi/mca/mtl/base/Makefile.am | 24 + ompi/mca/mtl/base/base.h | 46 + ompi/mca/mtl/base/mtl_base_datatype.h | 119 + ompi/mca/mtl/base/mtl_base_frame.c | 118 + ompi/mca/mtl/base/owner.txt | 7 + ompi/mca/mtl/configure.m4 | 18 + ompi/mca/mtl/mtl.h | 454 + ompi/mca/mtl/mxm/Makefile.am | 49 + ompi/mca/mtl/mxm/configure.m4 | 39 + ompi/mca/mtl/mxm/help-mtl-mxm.txt | 67 + ompi/mca/mtl/mxm/mtl_mxm.c | 679 ++ ompi/mca/mtl/mxm/mtl_mxm.h | 117 + ompi/mca/mtl/mxm/mtl_mxm_cancel.c | 34 + ompi/mca/mtl/mxm/mtl_mxm_component.c | 313 + ompi/mca/mtl/mxm/mtl_mxm_debug.h | 34 + ompi/mca/mtl/mxm/mtl_mxm_endpoint.c | 42 + ompi/mca/mtl/mxm/mtl_mxm_endpoint.h | 41 + ompi/mca/mtl/mxm/mtl_mxm_probe.c | 115 + ompi/mca/mtl/mxm/mtl_mxm_recv.c | 197 + ompi/mca/mtl/mxm/mtl_mxm_request.h | 35 + ompi/mca/mtl/mxm/mtl_mxm_send.c | 238 + ompi/mca/mtl/mxm/mtl_mxm_types.h | 123 + ompi/mca/mtl/mxm/owner.txt | 7 + ompi/mca/mtl/ofi/Makefile.am | 54 + ompi/mca/mtl/ofi/configure.m4 | 32 + ompi/mca/mtl/ofi/help-mtl-ofi.txt | 10 + ompi/mca/mtl/ofi/mtl_ofi.c | 166 + ompi/mca/mtl/ofi/mtl_ofi.h | 970 ++ ompi/mca/mtl/ofi/mtl_ofi_compat.h | 68 + ompi/mca/mtl/ofi/mtl_ofi_component.c | 619 ++ ompi/mca/mtl/ofi/mtl_ofi_endpoint.c | 35 + ompi/mca/mtl/ofi/mtl_ofi_endpoint.h | 51 + ompi/mca/mtl/ofi/mtl_ofi_request.h | 88 + ompi/mca/mtl/ofi/mtl_ofi_types.h | 132 + ompi/mca/mtl/ofi/owner.txt | 7 + ompi/mca/mtl/ofi/post_configure.sh | 1 + ompi/mca/mtl/portals4/Makefile.am | 68 + ompi/mca/mtl/portals4/configure.m4 | 69 + ompi/mca/mtl/portals4/mtl_portals4.c | 602 ++ ompi/mca/mtl/portals4/mtl_portals4.h | 321 + ompi/mca/mtl/portals4/mtl_portals4_cancel.c | 65 + .../mca/mtl/portals4/mtl_portals4_component.c | 560 ++ ompi/mca/mtl/portals4/mtl_portals4_endpoint.h | 40 + ompi/mca/mtl/portals4/mtl_portals4_flowctl.c | 616 ++ ompi/mca/mtl/portals4/mtl_portals4_flowctl.h | 100 + ompi/mca/mtl/portals4/mtl_portals4_message.c | 26 + ompi/mca/mtl/portals4/mtl_portals4_message.h | 58 + ompi/mca/mtl/portals4/mtl_portals4_probe.c | 223 + ompi/mca/mtl/portals4/mtl_portals4_recv.c | 483 + .../mtl/portals4/mtl_portals4_recv_short.c | 300 + .../mtl/portals4/mtl_portals4_recv_short.h | 58 + ompi/mca/mtl/portals4/mtl_portals4_request.h | 116 + ompi/mca/mtl/portals4/mtl_portals4_send.c | 627 ++ ompi/mca/mtl/portals4/owner.txt | 7 + ompi/mca/mtl/portals4/post_configure.sh | 1 + ompi/mca/mtl/psm/Makefile.am | 60 + ompi/mca/mtl/psm/configure.m4 | 49 + ompi/mca/mtl/psm/help-mtl-psm.txt | 43 + ompi/mca/mtl/psm/mtl_psm.c | 482 + ompi/mca/mtl/psm/mtl_psm.h | 110 + ompi/mca/mtl/psm/mtl_psm_cancel.c | 54 + ompi/mca/mtl/psm/mtl_psm_component.c | 365 + ompi/mca/mtl/psm/mtl_psm_endpoint.c | 54 + ompi/mca/mtl/psm/mtl_psm_endpoint.h | 70 + ompi/mca/mtl/psm/mtl_psm_probe.c | 83 + ompi/mca/mtl/psm/mtl_psm_recv.c | 90 + ompi/mca/mtl/psm/mtl_psm_request.h | 43 + ompi/mca/mtl/psm/mtl_psm_send.c | 131 + ompi/mca/mtl/psm/mtl_psm_types.h | 97 + ompi/mca/mtl/psm/owner.txt | 7 + ompi/mca/mtl/psm/post_configure.sh | 1 + ompi/mca/mtl/psm2/Makefile.am | 61 + ompi/mca/mtl/psm2/configure.m4 | 49 + ompi/mca/mtl/psm2/help-mtl-psm2.txt | 44 + ompi/mca/mtl/psm2/mtl_psm2.c | 465 + ompi/mca/mtl/psm2/mtl_psm2.h | 110 + ompi/mca/mtl/psm2/mtl_psm2_cancel.c | 55 + ompi/mca/mtl/psm2/mtl_psm2_component.c | 253 + ompi/mca/mtl/psm2/mtl_psm2_endpoint.c | 54 + ompi/mca/mtl/psm2/mtl_psm2_endpoint.h | 68 + ompi/mca/mtl/psm2/mtl_psm2_probe.c | 134 + ompi/mca/mtl/psm2/mtl_psm2_recv.c | 124 + ompi/mca/mtl/psm2/mtl_psm2_request.h | 44 + ompi/mca/mtl/psm2/mtl_psm2_send.c | 129 + ompi/mca/mtl/psm2/mtl_psm2_types.h | 93 + ompi/mca/mtl/psm2/owner.txt | 7 + ompi/mca/mtl/psm2/post_configure.sh | 1 + ompi/mca/op/Makefile.am | 37 + ompi/mca/op/base/Makefile.include | 29 + ompi/mca/op/base/base.h | 99 + ompi/mca/op/base/functions.h | 43 + ompi/mca/op/base/op_base_find_available.c | 153 + ompi/mca/op/base/op_base_frame.c | 63 + ompi/mca/op/base/op_base_functions.c | 1544 +++ ompi/mca/op/base/op_base_op_select.c | 338 + ompi/mca/op/base/owner.txt | 7 + ompi/mca/op/example/.opal_ignore | 0 ompi/mca/op/example/Makefile.am | 81 + ompi/mca/op/example/README.txt | 125 + ompi/mca/op/example/configure.m4 | 71 + ompi/mca/op/example/op_example.h | 105 + ompi/mca/op/example/op_example_component.c | 308 + ompi/mca/op/example/op_example_module_bxor.c | 222 + ompi/mca/op/example/op_example_module_max.c | 258 + ompi/mca/op/example/owner.txt | 7 + ompi/mca/op/op.h | 417 + ompi/mca/osc/Makefile.am | 37 + ompi/mca/osc/base/Makefile.am | 24 + ompi/mca/osc/base/base.h | 54 + ompi/mca/osc/base/osc_base_frame.c | 79 + ompi/mca/osc/base/osc_base_init.c | 74 + ompi/mca/osc/base/osc_base_obj_convert.c | 230 + ompi/mca/osc/base/osc_base_obj_convert.h | 130 + ompi/mca/osc/base/owner.txt | 7 + ompi/mca/osc/osc.h | 431 + ompi/mca/osc/portals4/Makefile.am | 44 + ompi/mca/osc/portals4/configure.m4 | 42 + ompi/mca/osc/portals4/osc_portals4.h | 314 + .../osc/portals4/osc_portals4_active_target.c | 193 + ompi/mca/osc/portals4/osc_portals4_comm.c | 1363 +++ .../mca/osc/portals4/osc_portals4_component.c | 703 ++ .../portals4/osc_portals4_passive_target.c | 428 + ompi/mca/osc/portals4/osc_portals4_request.c | 56 + ompi/mca/osc/portals4/osc_portals4_request.h | 49 + ompi/mca/osc/portals4/owner.txt | 7 + ompi/mca/osc/pt2pt/Makefile.am | 58 + ompi/mca/osc/pt2pt/configure.m4 | 20 + ompi/mca/osc/pt2pt/osc_pt2pt.h | 955 ++ ompi/mca/osc/pt2pt/osc_pt2pt_active_target.c | 614 ++ ompi/mca/osc/pt2pt/osc_pt2pt_comm.c | 1126 +++ ompi/mca/osc/pt2pt/osc_pt2pt_component.c | 505 + ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c | 1782 ++++ ompi/mca/osc/pt2pt/osc_pt2pt_data_move.h | 159 + ompi/mca/osc/pt2pt/osc_pt2pt_frag.c | 173 + ompi/mca/osc/pt2pt/osc_pt2pt_frag.h | 167 + ompi/mca/osc/pt2pt/osc_pt2pt_header.h | 432 + ompi/mca/osc/pt2pt/osc_pt2pt_module.c | 114 + ompi/mca/osc/pt2pt/osc_pt2pt_passive_target.c | 930 ++ ompi/mca/osc/pt2pt/osc_pt2pt_pending_frag.h | 68 + ompi/mca/osc/pt2pt/osc_pt2pt_request.c | 63 + ompi/mca/osc/pt2pt/osc_pt2pt_request.h | 77 + ompi/mca/osc/pt2pt/osc_pt2pt_sync.c | 93 + ompi/mca/osc/pt2pt/osc_pt2pt_sync.h | 184 + ompi/mca/osc/pt2pt/owner.txt | 7 + ompi/mca/osc/rdma/Makefile.am | 64 + ompi/mca/osc/rdma/configure.m4 | 26 + ompi/mca/osc/rdma/osc_rdma.h | 514 + ompi/mca/osc/rdma/osc_rdma_accumulate.c | 1208 +++ ompi/mca/osc/rdma/osc_rdma_accumulate.h | 43 + ompi/mca/osc/rdma/osc_rdma_active_target.c | 641 ++ ompi/mca/osc/rdma/osc_rdma_active_target.h | 42 + ompi/mca/osc/rdma/osc_rdma_comm.c | 954 ++ ompi/mca/osc/rdma/osc_rdma_comm.h | 135 + ompi/mca/osc/rdma/osc_rdma_component.c | 1251 +++ ompi/mca/osc/rdma/osc_rdma_dynamic.c | 397 + ompi/mca/osc/rdma/osc_rdma_dynamic.h | 60 + ompi/mca/osc/rdma/osc_rdma_frag.c | 16 + ompi/mca/osc/rdma/osc_rdma_frag.h | 123 + ompi/mca/osc/rdma/osc_rdma_lock.h | 338 + ompi/mca/osc/rdma/osc_rdma_module.c | 137 + ompi/mca/osc/rdma/osc_rdma_passive_target.c | 377 + ompi/mca/osc/rdma/osc_rdma_passive_target.h | 131 + ompi/mca/osc/rdma/osc_rdma_peer.c | 342 + ompi/mca/osc/rdma/osc_rdma_peer.h | 225 + ompi/mca/osc/rdma/osc_rdma_request.c | 80 + ompi/mca/osc/rdma/osc_rdma_request.h | 111 + ompi/mca/osc/rdma/osc_rdma_sync.c | 83 + ompi/mca/osc/rdma/osc_rdma_sync.h | 158 + ompi/mca/osc/rdma/osc_rdma_types.h | 210 + ompi/mca/osc/rdma/owner.txt | 7 + ompi/mca/osc/sm/Makefile.am | 42 + ompi/mca/osc/sm/osc_sm.h | 241 + ompi/mca/osc/sm/osc_sm_active_target.c | 328 + ompi/mca/osc/sm/osc_sm_comm.c | 441 + ompi/mca/osc/sm/osc_sm_component.c | 524 + ompi/mca/osc/sm/osc_sm_passive_target.c | 269 + ompi/mca/osc/sm/owner.txt | 7 + ompi/mca/pml/Makefile.am | 38 + ompi/mca/pml/base/Makefile.am | 35 + ompi/mca/pml/base/base.h | 76 + ompi/mca/pml/base/owner.txt | 7 + ompi/mca/pml/base/pml_base_bsend.c | 388 + ompi/mca/pml/base/pml_base_bsend.h | 42 + ompi/mca/pml/base/pml_base_frame.c | 240 + ompi/mca/pml/base/pml_base_ft.c | 79 + ompi/mca/pml/base/pml_base_recvreq.c | 53 + ompi/mca/pml/base/pml_base_recvreq.h | 127 + ompi/mca/pml/base/pml_base_request.c | 44 + ompi/mca/pml/base/pml_base_request.h | 87 + ompi/mca/pml/base/pml_base_request_dbg.h | 33 + ompi/mca/pml/base/pml_base_select.c | 383 + ompi/mca/pml/base/pml_base_sendreq.c | 49 + ompi/mca/pml/base/pml_base_sendreq.h | 156 + ompi/mca/pml/bfo/.opal_ignore | 0 ompi/mca/pml/bfo/Makefile.am | 76 + ompi/mca/pml/bfo/README | 340 + ompi/mca/pml/bfo/configure.m4 | 27 + ompi/mca/pml/bfo/help-mpi-pml-bfo.txt | 20 + ompi/mca/pml/bfo/owner.txt | 7 + ompi/mca/pml/bfo/pml_bfo.c | 873 ++ ompi/mca/pml/bfo/pml_bfo.h | 362 + ompi/mca/pml/bfo/pml_bfo_comm.c | 100 + ompi/mca/pml/bfo/pml_bfo_comm.h | 81 + ompi/mca/pml/bfo/pml_bfo_component.c | 274 + ompi/mca/pml/bfo/pml_bfo_component.h | 33 + ompi/mca/pml/bfo/pml_bfo_cuda.c | 157 + ompi/mca/pml/bfo/pml_bfo_failover.c | 2187 +++++ ompi/mca/pml/bfo/pml_bfo_failover.h | 398 + ompi/mca/pml/bfo/pml_bfo_hdr.h | 539 ++ ompi/mca/pml/bfo/pml_bfo_iprobe.c | 171 + ompi/mca/pml/bfo/pml_bfo_irecv.c | 308 + ompi/mca/pml/bfo/pml_bfo_isend.c | 129 + ompi/mca/pml/bfo/pml_bfo_progress.c | 78 + ompi/mca/pml/bfo/pml_bfo_rdma.c | 118 + ompi/mca/pml/bfo/pml_bfo_rdma.h | 42 + ompi/mca/pml/bfo/pml_bfo_rdmafrag.c | 30 + ompi/mca/pml/bfo/pml_bfo_rdmafrag.h | 75 + ompi/mca/pml/bfo/pml_bfo_recvfrag.c | 743 ++ ompi/mca/pml/bfo/pml_bfo_recvfrag.h | 172 + ompi/mca/pml/bfo/pml_bfo_recvreq.c | 1164 +++ ompi/mca/pml/bfo/pml_bfo_recvreq.h | 449 + ompi/mca/pml/bfo/pml_bfo_sendreq.c | 1400 +++ ompi/mca/pml/bfo/pml_bfo_sendreq.h | 499 + ompi/mca/pml/bfo/pml_bfo_start.c | 148 + ompi/mca/pml/bfo/post_configure.sh | 1 + ompi/mca/pml/cm/Makefile.am | 52 + ompi/mca/pml/cm/owner.txt | 7 + ompi/mca/pml/cm/pml_cm.c | 154 + ompi/mca/pml/cm/pml_cm.h | 539 ++ ompi/mca/pml/cm/pml_cm_cancel.c | 72 + ompi/mca/pml/cm/pml_cm_component.c | 170 + ompi/mca/pml/cm/pml_cm_component.h | 32 + ompi/mca/pml/cm/pml_cm_recvreq.c | 77 + ompi/mca/pml/cm/pml_cm_recvreq.h | 376 + ompi/mca/pml/cm/pml_cm_request.c | 37 + ompi/mca/pml/cm/pml_cm_request.h | 56 + ompi/mca/pml/cm/pml_cm_sendreq.c | 87 + ompi/mca/pml/cm/pml_cm_sendreq.h | 485 + ompi/mca/pml/cm/pml_cm_start.c | 101 + ompi/mca/pml/cm/post_configure.sh | 1 + ompi/mca/pml/configure.m4 | 18 + ompi/mca/pml/crcpw/Makefile.am | 42 + ompi/mca/pml/crcpw/configure.m4 | 28 + ompi/mca/pml/crcpw/owner.txt | 7 + ompi/mca/pml/crcpw/pml_crcpw.h | 149 + ompi/mca/pml/crcpw/pml_crcpw_component.c | 192 + ompi/mca/pml/crcpw/pml_crcpw_module.c | 842 ++ ompi/mca/pml/example/.opal_ignore | 0 ompi/mca/pml/example/Makefile.am | 59 + ompi/mca/pml/example/pml_example.c | 98 + ompi/mca/pml/example/pml_example.h | 155 + ompi/mca/pml/example/pml_example_cancel.c | 27 + ompi/mca/pml/example/pml_example_component.c | 94 + ompi/mca/pml/example/pml_example_iprobe.c | 47 + ompi/mca/pml/example/pml_example_irecv.c | 67 + ompi/mca/pml/example/pml_example_isend.c | 50 + ompi/mca/pml/example/pml_example_proc.c | 14 + ompi/mca/pml/example/pml_example_proc.h | 17 + ompi/mca/pml/example/pml_example_progress.c | 18 + ompi/mca/pml/example/pml_example_ptl.c | 14 + ompi/mca/pml/example/pml_example_ptl.h | 17 + ompi/mca/pml/example/pml_example_recvfrag.c | 21 + ompi/mca/pml/example/pml_example_recvfrag.h | 21 + ompi/mca/pml/example/pml_example_recvreq.c | 26 + ompi/mca/pml/example/pml_example_recvreq.h | 22 + ompi/mca/pml/example/pml_example_sendreq.c | 21 + ompi/mca/pml/example/pml_example_sendreq.h | 21 + ompi/mca/pml/example/pml_example_start.c | 18 + ompi/mca/pml/monitoring/Makefile.am | 38 + ompi/mca/pml/monitoring/README | 181 + ompi/mca/pml/monitoring/pml_monitoring.c | 258 + ompi/mca/pml/monitoring/pml_monitoring.h | 157 + ompi/mca/pml/monitoring/pml_monitoring_comm.c | 24 + .../pml/monitoring/pml_monitoring_component.c | 261 + .../pml/monitoring/pml_monitoring_iprobe.c | 57 + .../mca/pml/monitoring/pml_monitoring_irecv.c | 80 + .../mca/pml/monitoring/pml_monitoring_isend.c | 85 + .../mca/pml/monitoring/pml_monitoring_start.c | 57 + ompi/mca/pml/ob1/Makefile.am | 77 + ompi/mca/pml/ob1/configure.m4 | 27 + ompi/mca/pml/ob1/help-mpi-pml-ob1.txt | 44 + ompi/mca/pml/ob1/owner.txt | 7 + ompi/mca/pml/ob1/pml_ob1.c | 986 ++ ompi/mca/pml/ob1/pml_ob1.h | 402 + ompi/mca/pml/ob1/pml_ob1_comm.c | 102 + ompi/mca/pml/ob1/pml_ob1_comm.h | 100 + ompi/mca/pml/ob1/pml_ob1_component.c | 374 + ompi/mca/pml/ob1/pml_ob1_component.h | 32 + ompi/mca/pml/ob1/pml_ob1_cuda.c | 215 + ompi/mca/pml/ob1/pml_ob1_hdr.h | 538 ++ ompi/mca/pml/ob1/pml_ob1_iprobe.c | 176 + ompi/mca/pml/ob1/pml_ob1_irecv.c | 354 + ompi/mca/pml/ob1/pml_ob1_isend.c | 275 + ompi/mca/pml/ob1/pml_ob1_progress.c | 109 + ompi/mca/pml/ob1/pml_ob1_rdma.c | 177 + ompi/mca/pml/ob1/pml_ob1_rdma.h | 47 + ompi/mca/pml/ob1/pml_ob1_rdmafrag.c | 36 + ompi/mca/pml/ob1/pml_ob1_rdmafrag.h | 86 + ompi/mca/pml/ob1/pml_ob1_recvfrag.c | 755 ++ ompi/mca/pml/ob1/pml_ob1_recvfrag.h | 174 + ompi/mca/pml/ob1/pml_ob1_recvreq.c | 1274 +++ ompi/mca/pml/ob1/pml_ob1_recvreq.h | 464 + ompi/mca/pml/ob1/pml_ob1_sendreq.c | 1239 +++ ompi/mca/pml/ob1/pml_ob1_sendreq.h | 517 + ompi/mca/pml/ob1/pml_ob1_start.c | 119 + ompi/mca/pml/ob1/post_configure.sh | 1 + ompi/mca/pml/pml.h | 561 ++ ompi/mca/pml/pml_constants.h | 46 + ompi/mca/pml/ucx/Makefile.am | 45 + ompi/mca/pml/ucx/configure.m4 | 30 + ompi/mca/pml/ucx/pml_ucx.c | 834 ++ ompi/mca/pml/ucx/pml_ucx.h | 153 + ompi/mca/pml/ucx/pml_ucx_component.c | 114 + ompi/mca/pml/ucx/pml_ucx_datatype.c | 157 + ompi/mca/pml/ucx/pml_ucx_datatype.h | 39 + ompi/mca/pml/ucx/pml_ucx_freelist.h | 30 + ompi/mca/pml/ucx/pml_ucx_request.c | 210 + ompi/mca/pml/ucx/pml_ucx_request.h | 196 + ompi/mca/pml/v/Makefile.am | 38 + ompi/mca/pml/v/configure.m4 | 19 + ompi/mca/pml/v/owner.txt | 7 + ompi/mca/pml/v/pml_v.h | 26 + ompi/mca/pml/v/pml_v_component.c | 270 + ompi/mca/pml/v/pml_v_output.c | 55 + ompi/mca/pml/v/pml_v_output.h | 101 + ompi/mca/pml/yalla/Makefile.am | 47 + ompi/mca/pml/yalla/configure.m4 | 30 + ompi/mca/pml/yalla/owner.txt | 7 + ompi/mca/pml/yalla/pml_yalla.c | 737 ++ ompi/mca/pml/yalla/pml_yalla.h | 150 + ompi/mca/pml/yalla/pml_yalla_component.c | 112 + ompi/mca/pml/yalla/pml_yalla_datatype.c | 166 + ompi/mca/pml/yalla/pml_yalla_datatype.h | 77 + ompi/mca/pml/yalla/pml_yalla_freelist.h | 34 + ompi/mca/pml/yalla/pml_yalla_request.c | 278 + ompi/mca/pml/yalla/pml_yalla_request.h | 218 + ompi/mca/rte/Makefile.am | 27 + ompi/mca/rte/base/Makefile.am | 15 + ompi/mca/rte/base/base.h | 32 + ompi/mca/rte/base/rte_base_frame.c | 57 + ompi/mca/rte/configure.m4 | 34 + ompi/mca/rte/orte/Makefile.am | 125 + ompi/mca/rte/orte/configure.m4 | 46 + ompi/mca/rte/orte/rte_orte.h | 121 + ompi/mca/rte/orte/rte_orte_component.c | 105 + ompi/mca/rte/orte/rte_orte_module.c | 184 + ompi/mca/rte/rte.h | 239 + ompi/mca/sbgp/Makefile.am | 36 + ompi/mca/sbgp/base/Makefile.am | 17 + ompi/mca/sbgp/base/base.h | 48 + ompi/mca/sbgp/base/owner.txt | 7 + ompi/mca/sbgp/base/sbgp_base_close.c | 40 + ompi/mca/sbgp/base/sbgp_base_frame.c | 205 + ompi/mca/sbgp/base/sbgp_base_init.c | 42 + ompi/mca/sbgp/basesmsocket/Makefile.am | 41 + ompi/mca/sbgp/basesmsocket/owner.txt | 7 + .../mca/sbgp/basesmsocket/sbgp_basesmsocket.h | 81 + .../sbgp_basesmsocket_component.c | 305 + .../basesmsocket/sbgp_basesmsocket_module.c | 35 + ompi/mca/sbgp/basesmuma/Makefile.am | 41 + ompi/mca/sbgp/basesmuma/owner.txt | 7 + ompi/mca/sbgp/basesmuma/sbgp_basesmuma.h | 73 + .../sbgp/basesmuma/sbgp_basesmuma_component.c | 208 + .../sbgp/basesmuma/sbgp_basesmuma_module.c | 48 + ompi/mca/sbgp/ibnet/.opal_ignore | 0 ompi/mca/sbgp/ibnet/Makefile.am | 55 + ompi/mca/sbgp/ibnet/configure.m4 | 40 + ompi/mca/sbgp/ibnet/owner.txt | 7 + ompi/mca/sbgp/ibnet/sbgp_ibnet.h | 239 + ompi/mca/sbgp/ibnet/sbgp_ibnet_component.c | 600 ++ ompi/mca/sbgp/ibnet/sbgp_ibnet_mca.c | 229 + ompi/mca/sbgp/ibnet/sbgp_ibnet_mca.h | 22 + ompi/mca/sbgp/ibnet/sbgp_ibnet_module.c | 1029 ++ ompi/mca/sbgp/p2p/Makefile.am | 41 + ompi/mca/sbgp/p2p/configure.m4 | 27 + ompi/mca/sbgp/p2p/owner.txt | 7 + ompi/mca/sbgp/p2p/sbgp_p2p.h | 81 + ompi/mca/sbgp/p2p/sbgp_p2p_component.c | 224 + ompi/mca/sbgp/p2p/sbgp_p2p_module.c | 49 + ompi/mca/sbgp/sbgp.h | 137 + ompi/mca/sharedfp/Makefile.am | 40 + ompi/mca/sharedfp/addproc/.opal_ignore | 0 ompi/mca/sharedfp/addproc/.opal_unignore | 0 ompi/mca/sharedfp/addproc/Makefile.am | 64 + ompi/mca/sharedfp/addproc/owner.txt | 7 + ompi/mca/sharedfp/addproc/sharedfp_addproc.c | 97 + ompi/mca/sharedfp/addproc/sharedfp_addproc.h | 164 + .../addproc/sharedfp_addproc_component.c | 104 + .../addproc/sharedfp_addproc_control.c | 231 + .../addproc/sharedfp_addproc_control.h | 37 + .../addproc/sharedfp_addproc_file_open.c | 175 + .../sharedfp/addproc/sharedfp_addproc_iread.c | 206 + .../addproc/sharedfp_addproc_iwrite.c | 200 + .../sharedfp/addproc/sharedfp_addproc_read.c | 183 + .../sharedfp_addproc_request_position.c | 75 + .../sharedfp/addproc/sharedfp_addproc_seek.c | 69 + .../sharedfp/addproc/sharedfp_addproc_write.c | 183 + ompi/mca/sharedfp/base/Makefile.am | 28 + ompi/mca/sharedfp/base/base.h | 63 + ompi/mca/sharedfp/base/owner.txt | 7 + .../sharedfp/base/sharedfp_base_file_select.c | 262 + .../base/sharedfp_base_file_unselect.c | 42 + .../base/sharedfp_base_find_available.c | 142 + ompi/mca/sharedfp/base/sharedfp_base_frame.c | 65 + ompi/mca/sharedfp/configure.m4 | 28 + ompi/mca/sharedfp/individual/Makefile.am | 56 + ompi/mca/sharedfp/individual/owner.txt | 7 + .../sharedfp/individual/sharedfp_individual.c | 172 + .../sharedfp/individual/sharedfp_individual.h | 165 + .../sharedfp_individual_collaborate_data.c | 437 + .../sharedfp_individual_component.c | 90 + .../sharedfp_individual_file_open.c | 265 + .../sharedfp_individual_get_position.c | 34 + .../individual/sharedfp_individual_gettime.c | 28 + .../sharedfp_individual_insert_metadata.c | 151 + .../individual/sharedfp_individual_iwrite.c | 226 + .../individual/sharedfp_individual_read.c | 68 + .../individual/sharedfp_individual_seek.c | 33 + .../individual/sharedfp_individual_write.c | 205 + ompi/mca/sharedfp/lockedfile/Makefile.am | 55 + ompi/mca/sharedfp/lockedfile/owner.txt | 7 + .../sharedfp/lockedfile/sharedfp_lockedfile.c | 190 + .../sharedfp/lockedfile/sharedfp_lockedfile.h | 131 + .../sharedfp_lockedfile_component.c | 89 + .../sharedfp_lockedfile_file_open.c | 181 + .../sharedfp_lockedfile_get_position.c | 61 + .../lockedfile/sharedfp_lockedfile_iread.c | 230 + .../lockedfile/sharedfp_lockedfile_iwrite.c | 230 + .../lockedfile/sharedfp_lockedfile_read.c | 203 + .../sharedfp_lockedfile_request_position.c | 131 + .../lockedfile/sharedfp_lockedfile_seek.c | 165 + .../lockedfile/sharedfp_lockedfile_write.c | 210 + ompi/mca/sharedfp/sharedfp.h | 237 + ompi/mca/sharedfp/sm/Makefile.am | 55 + ompi/mca/sharedfp/sm/configure.m4 | 38 + ompi/mca/sharedfp/sm/owner.txt | 7 + ompi/mca/sharedfp/sm/sharedfp_sm.c | 118 + ompi/mca/sharedfp/sm/sharedfp_sm.h | 140 + ompi/mca/sharedfp/sm/sharedfp_sm_component.c | 89 + ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c | 285 + .../sharedfp/sm/sharedfp_sm_get_position.c | 62 + ompi/mca/sharedfp/sm/sharedfp_sm_iread.c | 228 + ompi/mca/sharedfp/sm/sharedfp_sm_iwrite.c | 231 + ompi/mca/sharedfp/sm/sharedfp_sm_read.c | 206 + .../sm/sharedfp_sm_request_position.c | 89 + ompi/mca/sharedfp/sm/sharedfp_sm_seek.c | 152 + ompi/mca/sharedfp/sm/sharedfp_sm_write.c | 213 + ompi/mca/topo/Makefile.am | 39 + ompi/mca/topo/base/Makefile.am | 44 + ompi/mca/topo/base/base.h | 199 + ompi/mca/topo/base/owner.txt | 7 + ompi/mca/topo/base/topo_base_cart_coords.c | 61 + ompi/mca/topo/base/topo_base_cart_create.c | 213 + ompi/mca/topo/base/topo_base_cart_get.c | 57 + ompi/mca/topo/base/topo_base_cart_map.c | 71 + ompi/mca/topo/base/topo_base_cart_rank.c | 81 + ompi/mca/topo/base/topo_base_cart_shift.c | 98 + ompi/mca/topo/base/topo_base_cart_sub.c | 164 + ompi/mca/topo/base/topo_base_cartdim_get.c | 40 + ompi/mca/topo/base/topo_base_comm_select.c | 311 + .../topo/base/topo_base_dist_graph_create.c | 343 + .../topo_base_dist_graph_create_adjacent.c | 108 + .../base/topo_base_dist_graph_neighbors.c | 56 + .../topo_base_dist_graph_neighbors_count.c | 32 + ompi/mca/topo/base/topo_base_find_available.c | 148 + ompi/mca/topo/base/topo_base_frame.c | 77 + ompi/mca/topo/base/topo_base_graph_create.c | 170 + ompi/mca/topo/base/topo_base_graph_get.c | 65 + ompi/mca/topo/base/topo_base_graph_map.c | 53 + .../mca/topo/base/topo_base_graph_neighbors.c | 64 + .../base/topo_base_graph_neighbors_count.c | 48 + ompi/mca/topo/base/topo_base_graphdims_get.c | 48 + ompi/mca/topo/base/topo_base_lazy_init.c | 59 + ompi/mca/topo/basic/Makefile.am | 43 + ompi/mca/topo/basic/owner.txt | 7 + ompi/mca/topo/basic/topo_basic.h | 32 + ompi/mca/topo/basic/topo_basic_component.c | 85 + ompi/mca/topo/example/.opal_ignore | 0 ompi/mca/topo/example/Makefile.am | 52 + ompi/mca/topo/example/owner.txt | 7 + ompi/mca/topo/example/topo_example.h | 86 + ompi/mca/topo/example/topo_example_cart_map.c | 79 + .../mca/topo/example/topo_example_component.c | 91 + .../mca/topo/example/topo_example_graph_map.c | 58 + ompi/mca/topo/example/topo_example_module.c | 58 + ompi/mca/topo/topo.h | 352 + ompi/mca/topo/treematch/Makefile.am | 62 + ompi/mca/topo/treematch/configure.m4 | 89 + ompi/mca/topo/treematch/topo_treematch.h | 82 + .../topo/treematch/topo_treematch_component.c | 100 + .../topo_treematch_dist_graph_create.c | 924 ++ .../topo/treematch/topo_treematch_module.c | 45 + ompi/mca/topo/treematch/treematch/COPYING | 8 + .../treematch/IntConstantInitializedVector.c | 61 + .../treematch/IntConstantInitializedVector.h | 16 + ompi/mca/topo/treematch/treematch/LICENSE | 515 + ompi/mca/topo/treematch/treematch/tgt_map.c | 56 + .../mca/topo/treematch/treematch/tgt_to_mat.c | 31 + ompi/mca/topo/treematch/treematch/tm_bucket.c | 669 ++ ompi/mca/topo/treematch/treematch/tm_bucket.h | 34 + ompi/mca/topo/treematch/treematch/tm_hwloc.c | 279 + ompi/mca/topo/treematch/treematch/tm_hwloc.h | 7 + .../treematch/treematch/tm_kpartitioning.c | 503 + .../treematch/treematch/tm_kpartitioning.h | 9 + ompi/mca/topo/treematch/treematch/tm_malloc.c | 158 + ompi/mca/topo/treematch/treematch/tm_malloc.h | 5 + .../mca/topo/treematch/treematch/tm_mapping.c | 1381 +++ .../mca/topo/treematch/treematch/tm_mapping.h | 43 + ompi/mca/topo/treematch/treematch/tm_mt.c | 198 + ompi/mca/topo/treematch/treematch/tm_mt.h | 11 + .../topo/treematch/treematch/tm_thread_pool.c | 349 + .../topo/treematch/treematch/tm_thread_pool.h | 45 + .../mca/topo/treematch/treematch/tm_timings.c | 32 + .../mca/topo/treematch/treematch/tm_timings.h | 47 + ompi/mca/topo/treematch/treematch/tm_tree.c | 1647 ++++ ompi/mca/topo/treematch/treematch/tm_tree.h | 94 + .../mca/topo/treematch/treematch/tm_verbose.c | 11 + .../mca/topo/treematch/treematch/tm_verbose.h | 11 + ompi/mca/topo/treematch/treematch/uthash.h | 905 ++ ompi/mca/vprotocol/Makefile.am | 31 + ompi/mca/vprotocol/base/Makefile.am | 20 + ompi/mca/vprotocol/base/base.h | 74 + ompi/mca/vprotocol/base/owner.txt | 7 + ompi/mca/vprotocol/base/vprotocol_base.c | 62 + .../vprotocol/base/vprotocol_base_parasite.c | 63 + .../vprotocol/base/vprotocol_base_request.c | 82 + .../vprotocol/base/vprotocol_base_request.h | 82 + .../vprotocol/base/vprotocol_base_select.c | 139 + ompi/mca/vprotocol/example/.opal_ignore | 0 ompi/mca/vprotocol/example/Makefile.am | 47 + ompi/mca/vprotocol/example/owner.txt | 7 + .../mca/vprotocol/example/vprotocol_example.c | 48 + .../mca/vprotocol/example/vprotocol_example.h | 96 + .../example/vprotocol_example_comm.c | 24 + .../example/vprotocol_example_component.c | 105 + .../example/vprotocol_example_probe.c | 29 + .../example/vprotocol_example_proc.c | 25 + .../example/vprotocol_example_progress.c | 24 + .../example/vprotocol_example_recv.c | 66 + .../example/vprotocol_example_send.c | 51 + .../example/vprotocol_example_start.c | 19 + .../example/vprotocol_example_start.h | 19 + .../example/vprotocol_example_wait.c | 31 + .../example/vprotocol_example_wait.h | 21 + ompi/mca/vprotocol/pessimist/Makefile.am | 55 + ompi/mca/vprotocol/pessimist/owner.txt | 7 + .../vprotocol/pessimist/vprotocol_pessimist.c | 55 + .../vprotocol/pessimist/vprotocol_pessimist.h | 114 + .../pessimist/vprotocol_pessimist_comm.c | 22 + .../pessimist/vprotocol_pessimist_component.c | 174 + .../pessimist/vprotocol_pessimist_event.c | 14 + .../pessimist/vprotocol_pessimist_event.h | 80 + .../pessimist/vprotocol_pessimist_eventlog.c | 163 + .../pessimist/vprotocol_pessimist_eventlog.h | 243 + .../vprotocol_pessimist_eventlog_protocol.h | 46 + .../pessimist/vprotocol_pessimist_probe.c | 95 + .../pessimist/vprotocol_pessimist_proc.c | 26 + .../pessimist/vprotocol_pessimist_progress.c | 29 + .../pessimist/vprotocol_pessimist_recv.c | 68 + .../pessimist/vprotocol_pessimist_request.c | 47 + .../pessimist/vprotocol_pessimist_request.h | 53 + .../pessimist/vprotocol_pessimist_send.c | 60 + .../vprotocol_pessimist_sender_based.c | 176 + .../vprotocol_pessimist_sender_based.h | 214 + .../vprotocol_pessimist_sender_based_types.h | 65 + .../pessimist/vprotocol_pessimist_start.c | 47 + .../pessimist/vprotocol_pessimist_start.h | 24 + .../pessimist/vprotocol_pessimist_wait.c | 172 + .../pessimist/vprotocol_pessimist_wait.h | 46 + ompi/mca/vprotocol/vprotocol.h | 100 + ompi/message/Makefile.am | 28 + ompi/message/message.c | 81 + ompi/message/message.h | 82 + ompi/mpi/Makefile.am | 26 + ompi/mpi/c/Makefile.am | 458 + ompi/mpi/c/abort.c | 61 + ompi/mpi/c/accumulate.c | 139 + ompi/mpi/c/add_error_class.c | 82 + ompi/mpi/c/add_error_code.c | 88 + ompi/mpi/c/add_error_string.c | 70 + ompi/mpi/c/address.c | 53 + ompi/mpi/c/allgather.c | 127 + ompi/mpi/c/allgatherv.c | 149 + ompi/mpi/c/alloc_mem.c | 96 + ompi/mpi/c/allreduce.c | 116 + ompi/mpi/c/alltoall.c | 112 + ompi/mpi/c/alltoallv.c | 131 + ompi/mpi/c/alltoallw.c | 126 + ompi/mpi/c/attr_delete.c | 65 + ompi/mpi/c/attr_fn.c | 156 + ompi/mpi/c/attr_get.c | 65 + ompi/mpi/c/attr_put.c | 64 + ompi/mpi/c/barrier.c | 77 + ompi/mpi/c/bcast.c | 114 + ompi/mpi/c/bindings.h | 98 + ompi/mpi/c/bsend.c | 83 + ompi/mpi/c/bsend_init.c | 98 + ompi/mpi/c/buffer_attach.c | 57 + ompi/mpi/c/buffer_detach.c | 56 + ompi/mpi/c/cancel.c | 68 + ompi/mpi/c/cart_coords.c | 82 + ompi/mpi/c/cart_create.c | 116 + ompi/mpi/c/cart_get.c | 76 + ompi/mpi/c/cart_map.c | 85 + ompi/mpi/c/cart_rank.c | 106 + ompi/mpi/c/cart_shift.c | 83 + ompi/mpi/c/cart_sub.c | 81 + ompi/mpi/c/cartdim_get.c | 77 + ompi/mpi/c/close_port.c | 61 + ompi/mpi/c/comm_accept.c | 127 + ompi/mpi/c/comm_c2f.c | 66 + ompi/mpi/c/comm_call_errhandler.c | 65 + ompi/mpi/c/comm_compare.c | 69 + ompi/mpi/c/comm_connect.c | 129 + ompi/mpi/c/comm_create.c | 69 + ompi/mpi/c/comm_create_errhandler.c | 70 + ompi/mpi/c/comm_create_group.c | 81 + ompi/mpi/c/comm_create_keyval.c | 66 + ompi/mpi/c/comm_delete_attr.c | 63 + ompi/mpi/c/comm_disconnect.c | 79 + ompi/mpi/c/comm_dup.c | 66 + ompi/mpi/c/comm_dup_with_info.c | 73 + ompi/mpi/c/comm_f2c.c | 61 + ompi/mpi/c/comm_free.c | 67 + ompi/mpi/c/comm_free_keyval.c | 58 + ompi/mpi/c/comm_get_attr.c | 71 + ompi/mpi/c/comm_get_errhandler.c | 82 + ompi/mpi/c/comm_get_info.c | 58 + ompi/mpi/c/comm_get_name.c | 88 + ompi/mpi/c/comm_get_parent.c | 60 + ompi/mpi/c/comm_group.c | 65 + ompi/mpi/c/comm_idup.c | 69 + ompi/mpi/c/comm_join.c | 254 + ompi/mpi/c/comm_rank.c | 63 + ompi/mpi/c/comm_remote_group.c | 73 + ompi/mpi/c/comm_remote_size.c | 63 + ompi/mpi/c/comm_set_attr.c | 62 + ompi/mpi/c/comm_set_errhandler.c | 80 + ompi/mpi/c/comm_set_info.c | 53 + ompi/mpi/c/comm_set_name.c | 78 + ompi/mpi/c/comm_size.c | 65 + ompi/mpi/c/comm_spawn.c | 166 + ompi/mpi/c/comm_spawn_multiple.c | 215 + ompi/mpi/c/comm_split.c | 72 + ompi/mpi/c/comm_split_type.c | 99 + ompi/mpi/c/comm_test_inter.c | 64 + ompi/mpi/c/compare_and_swap.c | 76 + ompi/mpi/c/dims_create.c | 255 + ompi/mpi/c/dist_graph_create.c | 95 + ompi/mpi/c/dist_graph_create_adjacent.c | 107 + ompi/mpi/c/dist_graph_neighbors.c | 73 + ompi/mpi/c/dist_graph_neighbors_count.c | 68 + ompi/mpi/c/errhandler_c2f.c | 57 + ompi/mpi/c/errhandler_create.c | 42 + ompi/mpi/c/errhandler_f2c.c | 64 + ompi/mpi/c/errhandler_free.c | 81 + ompi/mpi/c/errhandler_get.c | 55 + ompi/mpi/c/errhandler_set.c | 55 + ompi/mpi/c/error_class.c | 56 + ompi/mpi/c/error_string.c | 60 + ompi/mpi/c/exscan.c | 96 + ompi/mpi/c/fetch_and_op.c | 76 + ompi/mpi/c/file_c2f.c | 62 + ompi/mpi/c/file_call_errhandler.c | 60 + ompi/mpi/c/file_close.c | 62 + ompi/mpi/c/file_create_errhandler.c | 69 + ompi/mpi/c/file_delete.c | 83 + ompi/mpi/c/file_f2c.c | 62 + ompi/mpi/c/file_get_amode.c | 73 + ompi/mpi/c/file_get_atomicity.c | 73 + ompi/mpi/c/file_get_byte_offset.c | 74 + ompi/mpi/c/file_get_errhandler.c | 81 + ompi/mpi/c/file_get_group.c | 61 + ompi/mpi/c/file_get_info.c | 73 + ompi/mpi/c/file_get_position.c | 73 + ompi/mpi/c/file_get_position_shared.c | 73 + ompi/mpi/c/file_get_size.c | 73 + ompi/mpi/c/file_get_type_extent.c | 79 + ompi/mpi/c/file_get_view.c | 77 + ompi/mpi/c/file_iread.c | 84 + ompi/mpi/c/file_iread_all.c | 85 + ompi/mpi/c/file_iread_at.c | 86 + ompi/mpi/c/file_iread_at_all.c | 87 + ompi/mpi/c/file_iread_shared.c | 85 + ompi/mpi/c/file_iwrite.c | 88 + ompi/mpi/c/file_iwrite_all.c | 89 + ompi/mpi/c/file_iwrite_at.c | 91 + ompi/mpi/c/file_iwrite_at_all.c | 92 + ompi/mpi/c/file_iwrite_shared.c | 88 + ompi/mpi/c/file_open.c | 114 + ompi/mpi/c/file_preallocate.c | 71 + ompi/mpi/c/file_read.c | 82 + ompi/mpi/c/file_read_all.c | 82 + ompi/mpi/c/file_read_all_begin.c | 82 + ompi/mpi/c/file_read_all_end.c | 71 + ompi/mpi/c/file_read_at.c | 82 + ompi/mpi/c/file_read_at_all.c | 84 + ompi/mpi/c/file_read_at_all_begin.c | 82 + ompi/mpi/c/file_read_at_all_end.c | 71 + ompi/mpi/c/file_read_ordered.c | 77 + ompi/mpi/c/file_read_ordered_begin.c | 82 + ompi/mpi/c/file_read_ordered_end.c | 71 + ompi/mpi/c/file_read_shared.c | 82 + ompi/mpi/c/file_seek.c | 74 + ompi/mpi/c/file_seek_shared.c | 74 + ompi/mpi/c/file_set_atomicity.c | 71 + ompi/mpi/c/file_set_errhandler.c | 79 + ompi/mpi/c/file_set_info.c | 72 + ompi/mpi/c/file_set_size.c | 71 + ompi/mpi/c/file_set_view.c | 87 + ompi/mpi/c/file_sync.c | 71 + ompi/mpi/c/file_write.c | 86 + ompi/mpi/c/file_write_all.c | 86 + ompi/mpi/c/file_write_all_begin.c | 86 + ompi/mpi/c/file_write_all_end.c | 74 + ompi/mpi/c/file_write_at.c | 87 + ompi/mpi/c/file_write_at_all.c | 88 + ompi/mpi/c/file_write_at_all_begin.c | 87 + ompi/mpi/c/file_write_at_all_end.c | 74 + ompi/mpi/c/file_write_ordered.c | 86 + ompi/mpi/c/file_write_ordered_begin.c | 86 + ompi/mpi/c/file_write_ordered_end.c | 74 + ompi/mpi/c/file_write_shared.c | 86 + ompi/mpi/c/finalize.c | 48 + ompi/mpi/c/finalized.c | 78 + ompi/mpi/c/free_mem.c | 61 + ompi/mpi/c/gather.c | 185 + ompi/mpi/c/gatherv.c | 200 + ompi/mpi/c/get.c | 82 + ompi/mpi/c/get_accumulate.c | 149 + ompi/mpi/c/get_address.c | 54 + ompi/mpi/c/get_count.c | 85 + ompi/mpi/c/get_elements.c | 92 + ompi/mpi/c/get_elements_x.c | 92 + ompi/mpi/c/get_library_version.c | 124 + ompi/mpi/c/get_processor_name.c | 74 + ompi/mpi/c/get_version.c | 76 + ompi/mpi/c/graph_create.c | 116 + ompi/mpi/c/graph_get.c | 79 + ompi/mpi/c/graph_map.c | 84 + ompi/mpi/c/graph_neighbors.c | 84 + ompi/mpi/c/graph_neighbors_count.c | 81 + ompi/mpi/c/graphdims_get.c | 77 + ompi/mpi/c/grequest_complete.c | 64 + ompi/mpi/c/grequest_start.c | 60 + ompi/mpi/c/group_c2f.c | 53 + ompi/mpi/c/group_compare.c | 65 + ompi/mpi/c/group_difference.c | 61 + ompi/mpi/c/group_excl.c | 89 + ompi/mpi/c/group_f2c.c | 62 + ompi/mpi/c/group_free.c | 76 + ompi/mpi/c/group_incl.c | 89 + ompi/mpi/c/group_intersection.c | 62 + ompi/mpi/c/group_range_excl.c | 122 + ompi/mpi/c/group_range_incl.c | 123 + ompi/mpi/c/group_rank.c | 60 + ompi/mpi/c/group_size.c | 61 + ompi/mpi/c/group_translate_ranks.c | 76 + ompi/mpi/c/group_union.c | 62 + ompi/mpi/c/iallgather.c | 104 + ompi/mpi/c/iallgatherv.c | 128 + ompi/mpi/c/iallreduce.c | 118 + ompi/mpi/c/ialltoall.c | 102 + ompi/mpi/c/ialltoallv.c | 132 + ompi/mpi/c/ialltoallw.c | 129 + ompi/mpi/c/ibarrier.c | 65 + ompi/mpi/c/ibcast.c | 84 + ompi/mpi/c/ibsend.c | 88 + ompi/mpi/c/iexscan.c | 88 + ompi/mpi/c/igather.c | 174 + ompi/mpi/c/igatherv.c | 199 + ompi/mpi/c/improbe.c | 84 + ompi/mpi/c/imrecv.c | 72 + ompi/mpi/c/ineighbor_allgather.c | 105 + ompi/mpi/c/ineighbor_allgatherv.c | 128 + ompi/mpi/c/ineighbor_alltoall.c | 100 + ompi/mpi/c/ineighbor_alltoallv.c | 125 + ompi/mpi/c/ineighbor_alltoallw.c | 125 + ompi/mpi/c/info_c2f.c | 54 + ompi/mpi/c/info_create.c | 76 + ompi/mpi/c/info_delete.c | 82 + ompi/mpi/c/info_dup.c | 89 + ompi/mpi/c/info_f2c.c | 70 + ompi/mpi/c/info_free.c | 71 + ompi/mpi/c/info_get.c | 105 + ompi/mpi/c/info_get_nkeys.c | 74 + ompi/mpi/c/info_get_nthkey.c | 97 + ompi/mpi/c/info_get_valuelen.c | 95 + ompi/mpi/c/info_set.c | 109 + ompi/mpi/c/init.c | 87 + ompi/mpi/c/init_thread.c | 82 + ompi/mpi/c/initialized.c | 78 + ompi/mpi/c/intercomm_create.c | 236 + ompi/mpi/c/intercomm_merge.c | 154 + ompi/mpi/c/iprobe.c | 91 + ompi/mpi/c/irecv.c | 82 + ompi/mpi/c/ireduce.c | 142 + ompi/mpi/c/ireduce_scatter.c | 139 + ompi/mpi/c/ireduce_scatter_block.c | 106 + ompi/mpi/c/irsend.c | 92 + ompi/mpi/c/is_thread_main.c | 56 + ompi/mpi/c/iscan.c | 103 + ompi/mpi/c/iscatter.c | 157 + ompi/mpi/c/iscatterv.c | 197 + ompi/mpi/c/isend.c | 93 + ompi/mpi/c/issend.c | 90 + ompi/mpi/c/keyval_create.c | 67 + ompi/mpi/c/keyval_free.c | 55 + ompi/mpi/c/lookup_name.c | 146 + ompi/mpi/c/message_c2f.c | 77 + ompi/mpi/c/message_f2c.c | 62 + ompi/mpi/c/mprobe.c | 82 + ompi/mpi/c/mrecv.c | 80 + ompi/mpi/c/neighbor_allgather.c | 112 + ompi/mpi/c/neighbor_allgatherv.c | 148 + ompi/mpi/c/neighbor_alltoall.c | 109 + ompi/mpi/c/neighbor_alltoallv.c | 125 + ompi/mpi/c/neighbor_alltoallw.c | 121 + ompi/mpi/c/op_c2f.c | 53 + ompi/mpi/c/op_commutative.c | 66 + ompi/mpi/c/op_create.c | 67 + ompi/mpi/c/op_f2c.c | 63 + ompi/mpi/c/op_free.c | 63 + ompi/mpi/c/open_port.c | 74 + ompi/mpi/c/pack.c | 108 + ompi/mpi/c/pack_external.c | 81 + ompi/mpi/c/pack_external_size.c | 71 + ompi/mpi/c/pack_size.c | 78 + ompi/mpi/c/pcontrol.c | 56 + ompi/mpi/c/probe.c | 88 + ompi/mpi/c/profile/Makefile.am | 458 + ompi/mpi/c/publish_name.c | 180 + ompi/mpi/c/put.c | 85 + ompi/mpi/c/query_thread.c | 54 + ompi/mpi/c/raccumulate.c | 141 + ompi/mpi/c/recv.c | 81 + ompi/mpi/c/recv_init.c | 92 + ompi/mpi/c/reduce.c | 141 + ompi/mpi/c/reduce_local.c | 83 + ompi/mpi/c/reduce_scatter.c | 136 + ompi/mpi/c/reduce_scatter_block.c | 105 + ompi/mpi/c/register_datarep.c | 81 + ompi/mpi/c/request_c2f.c | 77 + ompi/mpi/c/request_f2c.c | 62 + ompi/mpi/c/request_free.c | 64 + ompi/mpi/c/request_get_status.c | 104 + ompi/mpi/c/rget.c | 85 + ompi/mpi/c/rget_accumulate.c | 151 + ompi/mpi/c/rput.c | 88 + ompi/mpi/c/rsend.c | 84 + ompi/mpi/c/rsend_init.c | 99 + ompi/mpi/c/scan.c | 110 + ompi/mpi/c/scatter.c | 168 + ompi/mpi/c/scatterv.c | 197 + ompi/mpi/c/send.c | 80 + ompi/mpi/c/send_init.c | 98 + ompi/mpi/c/sendrecv.c | 102 + ompi/mpi/c/sendrecv_replace.c | 143 + ompi/mpi/c/ssend.c | 83 + ompi/mpi/c/ssend_init.c | 99 + ompi/mpi/c/start.c | 92 + ompi/mpi/c/startall.c | 101 + ompi/mpi/c/status_c2f.c | 102 + ompi/mpi/c/status_f2c.c | 82 + ompi/mpi/c/status_set_cancelled.c | 67 + ompi/mpi/c/status_set_elements.c | 86 + ompi/mpi/c/status_set_elements_x.c | 86 + ompi/mpi/c/test.c | 77 + ompi/mpi/c/test_cancelled.c | 63 + ompi/mpi/c/testall.c | 94 + ompi/mpi/c/testany.c | 92 + ompi/mpi/c/testsome.c | 96 + ompi/mpi/c/topo_test.c | 69 + ompi/mpi/c/type_c2f.c | 59 + ompi/mpi/c/type_commit.c | 60 + ompi/mpi/c/type_contiguous.c | 76 + ompi/mpi/c/type_create_darray.c | 116 + ompi/mpi/c/type_create_f90_complex.c | 122 + ompi/mpi/c/type_create_f90_integer.c | 121 + ompi/mpi/c/type_create_f90_real.c | 120 + ompi/mpi/c/type_create_hindexed.c | 95 + ompi/mpi/c/type_create_hindexed_block.c | 79 + ompi/mpi/c/type_create_hvector.c | 85 + ompi/mpi/c/type_create_indexed_block.c | 87 + ompi/mpi/c/type_create_keyval.c | 69 + ompi/mpi/c/type_create_resized.c | 79 + ompi/mpi/c/type_create_struct.c | 102 + ompi/mpi/c/type_create_subarray.c | 92 + ompi/mpi/c/type_delete_attr.c | 64 + ompi/mpi/c/type_dup.c | 87 + ompi/mpi/c/type_extent.c | 62 + ompi/mpi/c/type_f2c.c | 67 + ompi/mpi/c/type_free.c | 69 + ompi/mpi/c/type_free_keyval.c | 60 + ompi/mpi/c/type_get_attr.c | 77 + ompi/mpi/c/type_get_contents.c | 95 + ompi/mpi/c/type_get_envelope.c | 69 + ompi/mpi/c/type_get_extent.c | 62 + ompi/mpi/c/type_get_extent_x.c | 68 + ompi/mpi/c/type_get_name.c | 76 + ompi/mpi/c/type_get_true_extent.c | 66 + ompi/mpi/c/type_get_true_extent_x.c | 72 + ompi/mpi/c/type_hindexed.c | 78 + ompi/mpi/c/type_hvector.c | 69 + ompi/mpi/c/type_indexed.c | 97 + ompi/mpi/c/type_lb.c | 62 + ompi/mpi/c/type_match_size.c | 69 + ompi/mpi/c/type_set_attr.c | 66 + ompi/mpi/c/type_set_name.c | 71 + ompi/mpi/c/type_size.c | 66 + ompi/mpi/c/type_size_x.c | 66 + ompi/mpi/c/type_struct.c | 44 + ompi/mpi/c/type_ub.c | 66 + ompi/mpi/c/type_vector.c | 82 + ompi/mpi/c/unpack.c | 114 + ompi/mpi/c/unpack_external.c | 78 + ompi/mpi/c/unpublish_name.c | 148 + ompi/mpi/c/wait.c | 87 + ompi/mpi/c/waitall.c | 90 + ompi/mpi/c/waitany.c | 90 + ompi/mpi/c/waitsome.c | 96 + ompi/mpi/c/win_allocate.c | 90 + ompi/mpi/c/win_allocate_shared.c | 91 + ompi/mpi/c/win_attach.c | 63 + ompi/mpi/c/win_c2f.c | 64 + ompi/mpi/c/win_call_errhandler.c | 58 + ompi/mpi/c/win_complete.c | 56 + ompi/mpi/c/win_create.c | 90 + ompi/mpi/c/win_create_dynamic.c | 85 + ompi/mpi/c/win_create_errhandler.c | 66 + ompi/mpi/c/win_create_keyval.c | 65 + ompi/mpi/c/win_delete_attr.c | 57 + ompi/mpi/c/win_detach.c | 63 + ompi/mpi/c/win_f2c.c | 60 + ompi/mpi/c/win_fence.c | 62 + ompi/mpi/c/win_flush.c | 61 + ompi/mpi/c/win_flush_all.c | 61 + ompi/mpi/c/win_flush_local.c | 61 + ompi/mpi/c/win_flush_local_all.c | 61 + ompi/mpi/c/win_free.c | 59 + ompi/mpi/c/win_free_keyval.c | 57 + ompi/mpi/c/win_get_attr.c | 70 + ompi/mpi/c/win_get_errhandler.c | 73 + ompi/mpi/c/win_get_group.c | 57 + ompi/mpi/c/win_get_info.c | 66 + ompi/mpi/c/win_get_name.c | 68 + ompi/mpi/c/win_lock.c | 71 + ompi/mpi/c/win_lock_all.c | 60 + ompi/mpi/c/win_post.c | 59 + ompi/mpi/c/win_set_attr.c | 57 + ompi/mpi/c/win_set_errhandler.c | 74 + ompi/mpi/c/win_set_info.c | 50 + ompi/mpi/c/win_set_name.c | 61 + ompi/mpi/c/win_shared_query.c | 56 + ompi/mpi/c/win_start.c | 58 + ompi/mpi/c/win_sync.c | 59 + ompi/mpi/c/win_test.c | 56 + ompi/mpi/c/win_unlock.c | 64 + ompi/mpi/c/win_unlock_all.c | 56 + ompi/mpi/c/win_wait.c | 56 + ompi/mpi/c/wtick.c | 59 + ompi/mpi/c/wtime.c | 58 + ompi/mpi/cxx/Makefile.am | 87 + ompi/mpi/cxx/comm.cc | 135 + ompi/mpi/cxx/comm.h | 465 + ompi/mpi/cxx/comm_inln.h | 689 ++ ompi/mpi/cxx/constants.h | 295 + ompi/mpi/cxx/cxx_glue.c | 158 + ompi/mpi/cxx/cxx_glue.h | 94 + ompi/mpi/cxx/datatype.cc | 103 + ompi/mpi/cxx/datatype.h | 258 + ompi/mpi/cxx/datatype_inln.h | 418 + ompi/mpi/cxx/errhandler.h | 63 + ompi/mpi/cxx/errhandler_inln.h | 49 + ompi/mpi/cxx/exception.h | 74 + ompi/mpi/cxx/file.cc | 185 + ompi/mpi/cxx/file.h | 317 + ompi/mpi/cxx/file_inln.h | 655 ++ ompi/mpi/cxx/functions.h | 156 + ompi/mpi/cxx/functions_inln.h | 295 + ompi/mpi/cxx/group.h | 124 + ompi/mpi/cxx/group_inln.h | 129 + ompi/mpi/cxx/info.h | 103 + ompi/mpi/cxx/info_inln.h | 83 + ompi/mpi/cxx/intercepts.cc | 517 + ompi/mpi/cxx/intercomm.h | 87 + ompi/mpi/cxx/intercomm_inln.h | 81 + ompi/mpi/cxx/intracomm.h | 166 + ompi/mpi/cxx/intracomm_inln.h | 240 + ompi/mpi/cxx/mpicxx.cc | 170 + ompi/mpi/cxx/mpicxx.h | 294 + ompi/mpi/cxx/op.h | 65 + ompi/mpi/cxx/op_inln.h | 149 + ompi/mpi/cxx/request.h | 235 + ompi/mpi/cxx/request_inln.h | 366 + ompi/mpi/cxx/status.h | 115 + ompi/mpi/cxx/status_inln.h | 105 + ompi/mpi/cxx/topology.h | 167 + ompi/mpi/cxx/topology_inln.h | 220 + ompi/mpi/cxx/win.cc | 113 + ompi/mpi/cxx/win.h | 212 + ompi/mpi/cxx/win_inln.h | 295 + ompi/mpi/fortran/base/Makefile.am | 54 + .../base/attr-fn-int-callback-interfaces.h | 157 + ompi/mpi/fortran/base/attr_fn_f.c | 308 + ompi/mpi/fortran/base/constants.h | 101 + .../base/conversion-fn-null-int-interface.h | 34 + ompi/mpi/fortran/base/conversion_fn_null_f.c | 72 + ompi/mpi/fortran/base/datarep.h | 107 + ompi/mpi/fortran/base/f90_accessors.c | 147 + ompi/mpi/fortran/base/fint_2_int.h | 244 + ompi/mpi/fortran/base/gen-mpi-mangling.pl | 206 + ompi/mpi/fortran/base/gen-mpi-sizeof.pl | 257 + ompi/mpi/fortran/base/strings.c | 167 + ompi/mpi/fortran/base/strings.h | 112 + ompi/mpi/fortran/base/test_constants_f.c | 85 + .../mpi/fortran/c_to_integer_kind_mapping.pdf | Bin 0 -> 57310 bytes ompi/mpi/fortran/common_sym_whitelist.txt | 65 + .../fortran/configure-fortran-output-bottom.h | 48 + .../mpi/fortran/configure-fortran-output.h.in | 112 + ompi/mpi/fortran/mpiext/Makefile.am | 106 + ompi/mpi/fortran/mpif-h/Makefile.am | 506 + ompi/mpi/fortran/mpif-h/abort_f.c | 77 + ompi/mpi/fortran/mpif-h/accumulate_f.c | 93 + ompi/mpi/fortran/mpif-h/add_error_class_f.c | 80 + ompi/mpi/fortran/mpif-h/add_error_code_f.c | 82 + ompi/mpi/fortran/mpif-h/add_error_string_f.c | 89 + ompi/mpi/fortran/mpif-h/address_f.c | 80 + ompi/mpi/fortran/mpif-h/aint_add_f.c | 73 + ompi/mpi/fortran/mpif-h/aint_diff_f.c | 73 + ompi/mpi/fortran/mpif-h/allgather_f.c | 94 + ompi/mpi/fortran/mpif-h/allgatherv_f.c | 104 + ompi/mpi/fortran/mpif-h/alloc_mem_f.c | 118 + ompi/mpi/fortran/mpif-h/allreduce_f.c | 91 + ompi/mpi/fortran/mpif-h/alltoall_f.c | 93 + ompi/mpi/fortran/mpif-h/alltoallv_f.c | 111 + ompi/mpi/fortran/mpif-h/alltoallw_f.c | 121 + ompi/mpi/fortran/mpif-h/attr_delete_f.c | 77 + ompi/mpi/fortran/mpif-h/attr_get_f.c | 87 + ompi/mpi/fortran/mpif-h/attr_put_f.c | 86 + ompi/mpi/fortran/mpif-h/barrier_f.c | 78 + ompi/mpi/fortran/mpif-h/bcast_f.c | 86 + ompi/mpi/fortran/mpif-h/bindings.h | 85 + ompi/mpi/fortran/mpif-h/bsend_f.c | 82 + ompi/mpi/fortran/mpif-h/bsend_init_f.c | 89 + ompi/mpi/fortran/mpif-h/buffer_attach_f.c | 73 + ompi/mpi/fortran/mpif-h/buffer_detach_f.c | 93 + ompi/mpi/fortran/mpif-h/cancel_f.c | 78 + ompi/mpi/fortran/mpif-h/cart_coords_f.c | 90 + ompi/mpi/fortran/mpif-h/cart_create_f.c | 100 + ompi/mpi/fortran/mpif-h/cart_get_f.c | 95 + ompi/mpi/fortran/mpif-h/cart_map_f.c | 94 + ompi/mpi/fortran/mpif-h/cart_rank_f.c | 94 + ompi/mpi/fortran/mpif-h/cart_shift_f.c | 91 + ompi/mpi/fortran/mpif-h/cart_sub_f.c | 105 + ompi/mpi/fortran/mpif-h/cartdim_get_f.c | 83 + ompi/mpi/fortran/mpif-h/close_port_f.c | 80 + ompi/mpi/fortran/mpif-h/comm_accept_f.c | 93 + .../fortran/mpif-h/comm_call_errhandler_f.c | 79 + ompi/mpi/fortran/mpif-h/comm_compare_f.c | 83 + ompi/mpi/fortran/mpif-h/comm_connect_f.c | 94 + .../fortran/mpif-h/comm_create_errhandler_f.c | 90 + ompi/mpi/fortran/mpif-h/comm_create_f.c | 81 + ompi/mpi/fortran/mpif-h/comm_create_group_f.c | 84 + .../mpi/fortran/mpif-h/comm_create_keyval_f.c | 103 + ompi/mpi/fortran/mpif-h/comm_delete_attr_f.c | 79 + ompi/mpi/fortran/mpif-h/comm_disconnect_f.c | 82 + ompi/mpi/fortran/mpif-h/comm_dup_f.c | 81 + .../mpi/fortran/mpif-h/comm_dup_with_info_f.c | 87 + ompi/mpi/fortran/mpif-h/comm_free_f.c | 80 + ompi/mpi/fortran/mpif-h/comm_free_keyval_f.c | 82 + ompi/mpi/fortran/mpif-h/comm_get_attr_f.c | 88 + .../fortran/mpif-h/comm_get_errhandler_f.c | 84 + ompi/mpi/fortran/mpif-h/comm_get_info_f.c | 73 + ompi/mpi/fortran/mpif-h/comm_get_name_f.c | 88 + ompi/mpi/fortran/mpif-h/comm_get_parent_f.c | 80 + ompi/mpi/fortran/mpif-h/comm_group_f.c | 81 + ompi/mpi/fortran/mpif-h/comm_idup_f.c | 86 + ompi/mpi/fortran/mpif-h/comm_join_f.c | 80 + ompi/mpi/fortran/mpif-h/comm_rank_f.c | 81 + ompi/mpi/fortran/mpif-h/comm_remote_group_f.c | 80 + ompi/mpi/fortran/mpif-h/comm_remote_size_f.c | 80 + ompi/mpi/fortran/mpif-h/comm_set_attr_f.c | 86 + .../fortran/mpif-h/comm_set_errhandler_f.c | 82 + ompi/mpi/fortran/mpif-h/comm_set_info_f.c | 69 + ompi/mpi/fortran/mpif-h/comm_set_name_f.c | 97 + ompi/mpi/fortran/mpif-h/comm_size_f.c | 83 + ompi/mpi/fortran/mpif-h/comm_spawn_f.c | 127 + .../fortran/mpif-h/comm_spawn_multiple_f.c | 156 + ompi/mpi/fortran/mpif-h/comm_split_f.c | 85 + ompi/mpi/fortran/mpif-h/comm_split_type_f.c | 90 + ompi/mpi/fortran/mpif-h/comm_test_inter_f.c | 81 + ompi/mpi/fortran/mpif-h/compare_and_swap_f.c | 89 + ompi/mpi/fortran/mpif-h/dims_create_f.c | 87 + .../mpif-h/dist_graph_create_adjacent_f.c | 129 + ompi/mpi/fortran/mpif-h/dist_graph_create_f.c | 114 + .../mpif-h/dist_graph_neighbors_count_f.c | 85 + .../fortran/mpif-h/dist_graph_neighbors_f.c | 114 + ompi/mpi/fortran/mpif-h/errhandler_create_f.c | 73 + ompi/mpi/fortran/mpif-h/errhandler_free_f.c | 82 + ompi/mpi/fortran/mpif-h/errhandler_get_f.c | 84 + ompi/mpi/fortran/mpif-h/errhandler_set_f.c | 81 + ompi/mpi/fortran/mpif-h/error_class_f.c | 82 + ompi/mpi/fortran/mpif-h/error_string_f.c | 100 + ompi/mpi/fortran/mpif-h/exscan_f.c | 91 + ompi/mpi/fortran/mpif-h/f_sync_reg_f.c | 74 + ompi/mpi/fortran/mpif-h/fetch_and_op_f.c | 89 + .../fortran/mpif-h/file_call_errhandler_f.c | 79 + ompi/mpi/fortran/mpif-h/file_close_f.c | 82 + .../fortran/mpif-h/file_create_errhandler_f.c | 89 + ompi/mpi/fortran/mpif-h/file_delete_f.c | 91 + ompi/mpi/fortran/mpif-h/file_get_amode_f.c | 82 + .../mpi/fortran/mpif-h/file_get_atomicity_f.c | 83 + .../fortran/mpif-h/file_get_byte_offset_f.c | 81 + .../fortran/mpif-h/file_get_errhandler_f.c | 83 + ompi/mpi/fortran/mpif-h/file_get_group_f.c | 81 + ompi/mpi/fortran/mpif-h/file_get_info_f.c | 81 + ompi/mpi/fortran/mpif-h/file_get_position_f.c | 81 + .../mpif-h/file_get_position_shared_f.c | 82 + ompi/mpi/fortran/mpif-h/file_get_size_f.c | 81 + .../fortran/mpif-h/file_get_type_extent_f.c | 80 + ompi/mpi/fortran/mpif-h/file_get_view_f.c | 91 + ompi/mpi/fortran/mpif-h/file_iread_all_f.c | 86 + ompi/mpi/fortran/mpif-h/file_iread_at_all_f.c | 89 + ompi/mpi/fortran/mpif-h/file_iread_at_f.c | 89 + ompi/mpi/fortran/mpif-h/file_iread_f.c | 86 + ompi/mpi/fortran/mpif-h/file_iread_shared_f.c | 89 + ompi/mpi/fortran/mpif-h/file_iwrite_all_f.c | 85 + .../mpi/fortran/mpif-h/file_iwrite_at_all_f.c | 88 + ompi/mpi/fortran/mpif-h/file_iwrite_at_f.c | 88 + ompi/mpi/fortran/mpif-h/file_iwrite_f.c | 85 + .../mpi/fortran/mpif-h/file_iwrite_shared_f.c | 89 + ompi/mpi/fortran/mpif-h/file_open_f.c | 98 + ompi/mpi/fortran/mpif-h/file_preallocate_f.c | 76 + .../fortran/mpif-h/file_read_all_begin_f.c | 82 + ompi/mpi/fortran/mpif-h/file_read_all_end_f.c | 85 + ompi/mpi/fortran/mpif-h/file_read_all_f.c | 88 + .../fortran/mpif-h/file_read_at_all_begin_f.c | 84 + .../fortran/mpif-h/file_read_at_all_end_f.c | 85 + ompi/mpi/fortran/mpif-h/file_read_at_all_f.c | 93 + ompi/mpi/fortran/mpif-h/file_read_at_f.c | 91 + ompi/mpi/fortran/mpif-h/file_read_f.c | 88 + .../mpif-h/file_read_ordered_begin_f.c | 81 + .../fortran/mpif-h/file_read_ordered_end_f.c | 85 + ompi/mpi/fortran/mpif-h/file_read_ordered_f.c | 91 + ompi/mpi/fortran/mpif-h/file_read_shared_f.c | 91 + ompi/mpi/fortran/mpif-h/file_seek_f.c | 78 + ompi/mpi/fortran/mpif-h/file_seek_shared_f.c | 78 + .../mpi/fortran/mpif-h/file_set_atomicity_f.c | 77 + .../fortran/mpif-h/file_set_errhandler_f.c | 79 + ompi/mpi/fortran/mpif-h/file_set_info_f.c | 77 + ompi/mpi/fortran/mpif-h/file_set_size_f.c | 76 + ompi/mpi/fortran/mpif-h/file_set_view_f.c | 97 + ompi/mpi/fortran/mpif-h/file_sync_f.c | 76 + .../fortran/mpif-h/file_write_all_begin_f.c | 82 + .../mpi/fortran/mpif-h/file_write_all_end_f.c | 85 + ompi/mpi/fortran/mpif-h/file_write_all_f.c | 88 + .../mpif-h/file_write_at_all_begin_f.c | 84 + .../fortran/mpif-h/file_write_at_all_end_f.c | 85 + ompi/mpi/fortran/mpif-h/file_write_at_all_f.c | 93 + ompi/mpi/fortran/mpif-h/file_write_at_f.c | 93 + ompi/mpi/fortran/mpif-h/file_write_f.c | 88 + .../mpif-h/file_write_ordered_begin_f.c | 82 + .../fortran/mpif-h/file_write_ordered_end_f.c | 85 + .../mpi/fortran/mpif-h/file_write_ordered_f.c | 91 + ompi/mpi/fortran/mpif-h/file_write_shared_f.c | 91 + ompi/mpi/fortran/mpif-h/finalize_f.c | 73 + ompi/mpi/fortran/mpif-h/finalized_f.c | 80 + ompi/mpi/fortran/mpif-h/free_mem_f.c | 73 + ompi/mpi/fortran/mpif-h/gather_f.c | 93 + ompi/mpi/fortran/mpif-h/gatherv_f.c | 101 + ompi/mpi/fortran/mpif-h/get_accumulate_f.c | 99 + ompi/mpi/fortran/mpif-h/get_address_f.c | 81 + ompi/mpi/fortran/mpif-h/get_count_f.c | 90 + ompi/mpi/fortran/mpif-h/get_elements_f.c | 90 + ompi/mpi/fortran/mpif-h/get_elements_x_f.c | 90 + ompi/mpi/fortran/mpif-h/get_f.c | 89 + .../fortran/mpif-h/get_library_version_f.c | 84 + .../mpi/fortran/mpif-h/get_processor_name_f.c | 101 + ompi/mpi/fortran/mpif-h/get_version_f.c | 83 + ompi/mpi/fortran/mpif-h/graph_create_f.c | 100 + ompi/mpi/fortran/mpif-h/graph_get_f.c | 96 + ompi/mpi/fortran/mpif-h/graph_map_f.c | 95 + .../fortran/mpif-h/graph_neighbors_count_f.c | 86 + ompi/mpi/fortran/mpif-h/graph_neighbors_f.c | 95 + ompi/mpi/fortran/mpif-h/graphdims_get_f.c | 89 + ompi/mpi/fortran/mpif-h/grequest_complete_f.c | 76 + ompi/mpi/fortran/mpif-h/grequest_start_f.c | 92 + ompi/mpi/fortran/mpif-h/group_compare_f.c | 96 + ompi/mpi/fortran/mpif-h/group_difference_f.c | 86 + ompi/mpi/fortran/mpif-h/group_excl_f.c | 92 + ompi/mpi/fortran/mpif-h/group_free_f.c | 87 + ompi/mpi/fortran/mpif-h/group_incl_f.c | 91 + .../mpi/fortran/mpif-h/group_intersection_f.c | 86 + ompi/mpi/fortran/mpif-h/group_range_excl_f.c | 92 + ompi/mpi/fortran/mpif-h/group_range_incl_f.c | 93 + ompi/mpi/fortran/mpif-h/group_rank_f.c | 85 + ompi/mpi/fortran/mpif-h/group_size_f.c | 85 + .../fortran/mpif-h/group_translate_ranks_f.c | 100 + ompi/mpi/fortran/mpif-h/group_union_f.c | 86 + ompi/mpi/fortran/mpif-h/iallgather_f.c | 97 + ompi/mpi/fortran/mpif-h/iallgatherv_f.c | 107 + ompi/mpi/fortran/mpif-h/iallreduce_f.c | 93 + ompi/mpi/fortran/mpif-h/ialltoall_f.c | 96 + ompi/mpi/fortran/mpif-h/ialltoallv_f.c | 113 + ompi/mpi/fortran/mpif-h/ialltoallw_f.c | 123 + ompi/mpi/fortran/mpif-h/ibarrier_f.c | 81 + ompi/mpi/fortran/mpif-h/ibcast_f.c | 90 + ompi/mpi/fortran/mpif-h/ibsend_f.c | 90 + ompi/mpi/fortran/mpif-h/iexscan_f.c | 93 + ompi/mpi/fortran/mpif-h/igather_f.c | 96 + ompi/mpi/fortran/mpif-h/igatherv_f.c | 103 + ompi/mpi/fortran/mpif-h/improbe_f.c | 103 + ompi/mpi/fortran/mpif-h/imrecv_f.c | 92 + .../fortran/mpif-h/ineighbor_allgather_f.c | 100 + .../fortran/mpif-h/ineighbor_allgatherv_f.c | 110 + .../mpi/fortran/mpif-h/ineighbor_alltoall_f.c | 99 + .../fortran/mpif-h/ineighbor_alltoallv_f.c | 116 + .../fortran/mpif-h/ineighbor_alltoallw_f.c | 120 + ompi/mpi/fortran/mpif-h/info_create_f.c | 80 + ompi/mpi/fortran/mpif-h/info_delete_f.c | 96 + ompi/mpi/fortran/mpif-h/info_dup_f.c | 82 + ompi/mpi/fortran/mpif-h/info_free_f.c | 82 + ompi/mpi/fortran/mpif-h/info_get_f.c | 120 + ompi/mpi/fortran/mpif-h/info_get_nkeys_f.c | 83 + ompi/mpi/fortran/mpif-h/info_get_nthkey_f.c | 98 + ompi/mpi/fortran/mpif-h/info_get_valuelen_f.c | 106 + ompi/mpi/fortran/mpif-h/info_set_f.c | 103 + ompi/mpi/fortran/mpif-h/init_f.c | 86 + ompi/mpi/fortran/mpif-h/init_thread_f.c | 84 + ompi/mpi/fortran/mpif-h/initialized_f.c | 79 + ompi/mpi/fortran/mpif-h/intercomm_create_f.c | 91 + ompi/mpi/fortran/mpif-h/intercomm_merge_f.c | 83 + ompi/mpi/fortran/mpif-h/iprobe_f.c | 95 + ompi/mpi/fortran/mpif-h/irecv_f.c | 89 + ompi/mpi/fortran/mpif-h/ireduce_f.c | 96 + .../fortran/mpif-h/ireduce_scatter_block_f.c | 97 + ompi/mpi/fortran/mpif-h/ireduce_scatter_f.c | 99 + ompi/mpi/fortran/mpif-h/irsend_f.c | 88 + ompi/mpi/fortran/mpif-h/is_thread_main_f.c | 80 + ompi/mpi/fortran/mpif-h/iscan_f.c | 94 + ompi/mpi/fortran/mpif-h/iscatter_f.c | 95 + ompi/mpi/fortran/mpif-h/iscatterv_f.c | 107 + ompi/mpi/fortran/mpif-h/isend_f.c | 88 + ompi/mpi/fortran/mpif-h/issend_f.c | 88 + ompi/mpi/fortran/mpif-h/keyval_create_f.c | 103 + ompi/mpi/fortran/mpif-h/keyval_free_f.c | 82 + ompi/mpi/fortran/mpif-h/lookup_name_f.c | 96 + ompi/mpi/fortran/mpif-h/mprobe_f.c | 99 + ompi/mpi/fortran/mpif-h/mrecv_f.c | 97 + .../mpi/fortran/mpif-h/neighbor_allgather_f.c | 97 + .../fortran/mpif-h/neighbor_allgatherv_f.c | 107 + ompi/mpi/fortran/mpif-h/neighbor_alltoall_f.c | 96 + .../mpi/fortran/mpif-h/neighbor_alltoallv_f.c | 114 + .../mpi/fortran/mpif-h/neighbor_alltoallw_f.c | 118 + ompi/mpi/fortran/mpif-h/op_commutative_f.c | 83 + ompi/mpi/fortran/mpif-h/op_create_f.c | 87 + ompi/mpi/fortran/mpif-h/op_free_f.c | 82 + ompi/mpi/fortran/mpif-h/open_port_f.c | 84 + ompi/mpi/fortran/mpif-h/pack_external_f.c | 100 + .../mpi/fortran/mpif-h/pack_external_size_f.c | 97 + ompi/mpi/fortran/mpif-h/pack_f.c | 93 + ompi/mpi/fortran/mpif-h/pack_size_f.c | 88 + ompi/mpi/fortran/mpif-h/pcontrol_f.c | 72 + ompi/mpi/fortran/mpif-h/probe_f.c | 89 + ompi/mpi/fortran/mpif-h/profile/Makefile.am | 471 + ompi/mpi/fortran/mpif-h/prototypes_mpi.h | 468 + ompi/mpi/fortran/mpif-h/publish_name_f.c | 87 + ompi/mpi/fortran/mpif-h/put_f.c | 89 + ompi/mpi/fortran/mpif-h/query_thread_f.c | 80 + ompi/mpi/fortran/mpif-h/raccumulate_f.c | 102 + ompi/mpi/fortran/mpif-h/recv_f.c | 92 + ompi/mpi/fortran/mpif-h/recv_init_f.c | 90 + ompi/mpi/fortran/mpif-h/reduce_f.c | 93 + ompi/mpi/fortran/mpif-h/reduce_local_f.c | 87 + .../fortran/mpif-h/reduce_scatter_block_f.c | 94 + ompi/mpi/fortran/mpif-h/reduce_scatter_f.c | 96 + ompi/mpi/fortran/mpif-h/register_datarep_f.c | 254 + ompi/mpi/fortran/mpif-h/request_free_f.c | 80 + .../mpi/fortran/mpif-h/request_get_status_f.c | 91 + ompi/mpi/fortran/mpif-h/rget_accumulate_f.c | 106 + ompi/mpi/fortran/mpif-h/rget_f.c | 98 + ompi/mpi/fortran/mpif-h/rput_f.c | 98 + ompi/mpi/fortran/mpif-h/rsend_f.c | 83 + ompi/mpi/fortran/mpif-h/rsend_init_f.c | 91 + ompi/mpi/fortran/mpif-h/scan_f.c | 92 + ompi/mpi/fortran/mpif-h/scatter_f.c | 92 + ompi/mpi/fortran/mpif-h/scatterv_f.c | 105 + ompi/mpi/fortran/mpif-h/send_f.c | 83 + ompi/mpi/fortran/mpif-h/send_init_f.c | 90 + ompi/mpi/fortran/mpif-h/sendrecv_f.c | 98 + ompi/mpi/fortran/mpif-h/sendrecv_replace_f.c | 96 + ompi/mpi/fortran/mpif-h/ssend_f.c | 84 + ompi/mpi/fortran/mpif-h/ssend_init_f.c | 90 + ompi/mpi/fortran/mpif-h/start_f.c | 88 + ompi/mpi/fortran/mpif-h/startall_f.c | 100 + ompi/mpi/fortran/mpif-h/status-conversion.h | 171 + .../fortran/mpif-h/status_set_cancelled_f.c | 89 + .../fortran/mpif-h/status_set_elements_f.c | 94 + .../fortran/mpif-h/status_set_elements_x_f.c | 95 + ompi/mpi/fortran/mpif-h/test_cancelled_f.c | 92 + ompi/mpi/fortran/mpif-h/test_f.c | 94 + ompi/mpi/fortran/mpif-h/testall_f.c | 123 + ompi/mpi/fortran/mpif-h/testany_f.c | 131 + ompi/mpi/fortran/mpif-h/testsome_f.c | 135 + ompi/mpi/fortran/mpif-h/topo_test_f.c | 84 + ompi/mpi/fortran/mpif-h/type_commit_f.c | 80 + ompi/mpi/fortran/mpif-h/type_contiguous_f.c | 82 + .../mpi/fortran/mpif-h/type_create_darray_f.c | 107 + .../mpif-h/type_create_f90_complex_f.c | 83 + .../mpif-h/type_create_f90_integer_f.c | 81 + .../fortran/mpif-h/type_create_f90_real_f.c | 83 + .../mpif-h/type_create_hindexed_block_f.c | 81 + .../fortran/mpif-h/type_create_hindexed_f.c | 94 + .../fortran/mpif-h/type_create_hvector_f.c | 85 + .../mpif-h/type_create_indexed_block_f.c | 93 + .../mpi/fortran/mpif-h/type_create_keyval_f.c | 101 + .../fortran/mpif-h/type_create_resized_f.c | 83 + .../mpi/fortran/mpif-h/type_create_struct_f.c | 111 + .../fortran/mpif-h/type_create_subarray_f.c | 102 + ompi/mpi/fortran/mpif-h/type_delete_attr_f.c | 77 + ompi/mpi/fortran/mpif-h/type_dup_f.c | 81 + ompi/mpi/fortran/mpif-h/type_extent_f.c | 81 + ompi/mpi/fortran/mpif-h/type_free_f.c | 82 + ompi/mpi/fortran/mpif-h/type_free_keyval_f.c | 82 + ompi/mpi/fortran/mpif-h/type_get_attr_f.c | 88 + ompi/mpi/fortran/mpif-h/type_get_contents_f.c | 131 + ompi/mpi/fortran/mpif-h/type_get_envelope_f.c | 94 + ompi/mpi/fortran/mpif-h/type_get_extent_f.c | 77 + ompi/mpi/fortran/mpif-h/type_get_extent_x_f.c | 79 + ompi/mpi/fortran/mpif-h/type_get_name_f.c | 84 + .../fortran/mpif-h/type_get_true_extent_f.c | 76 + .../fortran/mpif-h/type_get_true_extent_x_f.c | 78 + ompi/mpi/fortran/mpif-h/type_hindexed_f.c | 108 + ompi/mpi/fortran/mpif-h/type_hvector_f.c | 87 + ompi/mpi/fortran/mpif-h/type_indexed_f.c | 94 + ompi/mpi/fortran/mpif-h/type_lb_f.c | 81 + ompi/mpi/fortran/mpif-h/type_match_size_f.c | 111 + ompi/mpi/fortran/mpif-h/type_set_attr_f.c | 85 + ompi/mpi/fortran/mpif-h/type_set_name_f.c | 100 + ompi/mpi/fortran/mpif-h/type_size_f.c | 81 + ompi/mpi/fortran/mpif-h/type_size_x_f.c | 79 + ompi/mpi/fortran/mpif-h/type_struct_f.c | 114 + ompi/mpi/fortran/mpif-h/type_ub_f.c | 81 + ompi/mpi/fortran/mpif-h/type_vector_f.c | 88 + ompi/mpi/fortran/mpif-h/unpack_external_f.c | 103 + ompi/mpi/fortran/mpif-h/unpack_f.c | 92 + ompi/mpi/fortran/mpif-h/unpublish_name_f.c | 89 + ompi/mpi/fortran/mpif-h/wait_f.c | 85 + ompi/mpi/fortran/mpif-h/waitall_f.c | 117 + ompi/mpi/fortran/mpif-h/waitany_f.c | 124 + ompi/mpi/fortran/mpif-h/waitsome_f.c | 138 + ompi/mpi/fortran/mpif-h/win_allocate_f.c | 140 + .../fortran/mpif-h/win_allocate_shared_f.c | 140 + ompi/mpi/fortran/mpif-h/win_attach_f.c | 67 + .../fortran/mpif-h/win_call_errhandler_f.c | 79 + ompi/mpi/fortran/mpif-h/win_complete_f.c | 78 + .../mpi/fortran/mpif-h/win_create_dynamic_f.c | 75 + .../fortran/mpif-h/win_create_errhandler_f.c | 87 + ompi/mpi/fortran/mpif-h/win_create_f.c | 89 + ompi/mpi/fortran/mpif-h/win_create_keyval_f.c | 100 + ompi/mpi/fortran/mpif-h/win_delete_attr_f.c | 77 + ompi/mpi/fortran/mpif-h/win_detach_f.c | 67 + ompi/mpi/fortran/mpif-h/win_fence_f.c | 76 + ompi/mpi/fortran/mpif-h/win_flush_all_f.c | 79 + ompi/mpi/fortran/mpif-h/win_flush_f.c | 79 + .../fortran/mpif-h/win_flush_local_all_f.c | 79 + ompi/mpi/fortran/mpif-h/win_flush_local_f.c | 79 + ompi/mpi/fortran/mpif-h/win_free_f.c | 80 + ompi/mpi/fortran/mpif-h/win_free_keyval_f.c | 82 + ompi/mpi/fortran/mpif-h/win_get_attr_f.c | 86 + .../mpi/fortran/mpif-h/win_get_errhandler_f.c | 82 + ompi/mpi/fortran/mpif-h/win_get_group_f.c | 81 + ompi/mpi/fortran/mpif-h/win_get_info_f.c | 68 + ompi/mpi/fortran/mpif-h/win_get_name_f.c | 88 + ompi/mpi/fortran/mpif-h/win_lock_all_f.c | 77 + ompi/mpi/fortran/mpif-h/win_lock_f.c | 80 + ompi/mpi/fortran/mpif-h/win_post_f.c | 80 + ompi/mpi/fortran/mpif-h/win_set_attr_f.c | 87 + .../mpi/fortran/mpif-h/win_set_errhandler_f.c | 79 + ompi/mpi/fortran/mpif-h/win_set_info_f.c | 68 + ompi/mpi/fortran/mpif-h/win_set_name_f.c | 99 + ompi/mpi/fortran/mpif-h/win_shared_query_f.c | 139 + ompi/mpi/fortran/mpif-h/win_start_f.c | 80 + ompi/mpi/fortran/mpif-h/win_sync_f.c | 76 + ompi/mpi/fortran/mpif-h/win_test_f.c | 81 + ompi/mpi/fortran/mpif-h/win_unlock_all_f.c | 76 + ompi/mpi/fortran/mpif-h/win_unlock_f.c | 76 + ompi/mpi/fortran/mpif-h/win_wait_f.c | 76 + ompi/mpi/fortran/mpif-h/wtick_f.c | 74 + ompi/mpi/fortran/mpif-h/wtime_f.c | 74 + .../use-mpi-f08-desc/ISO_Fortran_binding.h | 98 + ompi/mpi/fortran/use-mpi-f08-desc/Makefile.am | 106 + .../use-mpi-f08-desc/OMPI_Fortran_binding.f90 | 142 + .../use-mpi-f08-desc/OMPI_Fortran_binding_c.c | 194 + .../use-mpi-f08-desc/comm_rank_f08.f90 | 20 + .../use-mpi-f08-desc/comm_size_f08.f90 | 20 + ompi/mpi/fortran/use-mpi-f08-desc/constants.c | 64 + ompi/mpi/fortran/use-mpi-f08-desc/constants.h | 84 + .../fortran/use-mpi-f08-desc/constants.h.fin | 33 + .../fortran/use-mpi-f08-desc/finalize_f08.f90 | 17 + .../mpi/fortran/use-mpi-f08-desc/init_f08.f90 | 17 + .../use-mpi-f08-desc/mpi-f-interfaces-bind.h | 78 + .../use-mpi-f08-desc/mpi-f08-interfaces.F90 | 150 + .../use-mpi-f08-desc/mpi-f08-types.f90 | 158 + ompi/mpi/fortran/use-mpi-f08-desc/mpi-f08.f90 | 35 + .../use-mpi-f08-desc/recv_f08_desc.f90 | 84 + .../use-mpi-f08-desc/send_f08_desc.f90 | 73 + .../use-mpi-f08-desc/type_commit_f08.f90 | 19 + .../use-mpi-f08-desc/type_contiguous_f08.f90 | 21 + .../use-mpi-f08-desc/type_vector_f08.f90 | 22 + ompi/mpi/fortran/use-mpi-f08/Makefile.am | 904 ++ ompi/mpi/fortran/use-mpi-f08/abort_f08.F90 | 20 + .../fortran/use-mpi-f08/accumulate_f08.F90 | 31 + .../use-mpi-f08/add_error_class_f08.F90 | 18 + .../use-mpi-f08/add_error_code_f08.F90 | 19 + .../use-mpi-f08/add_error_string_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/aint_add_f08.F90 | 18 + .../mpi/fortran/use-mpi-f08/aint_diff_f08.F90 | 18 + .../mpi/fortran/use-mpi-f08/allgather_f08.F90 | 26 + .../fortran/use-mpi-f08/allgatherv_f08.F90 | 28 + .../mpi/fortran/use-mpi-f08/alloc_mem_f08.F90 | 22 + .../mpi/fortran/use-mpi-f08/allreduce_f08.F90 | 26 + ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 | 27 + .../mpi/fortran/use-mpi-f08/alltoallv_f08.F90 | 27 + .../mpi/fortran/use-mpi-f08/alltoallw_f08.F90 | 37 + ompi/mpi/fortran/use-mpi-f08/barrier_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 | 24 + ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 | 24 + .../fortran/use-mpi-f08/bsend_init_f08.F90 | 26 + .../fortran/use-mpi-f08/buffer_attach_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/buffer_detach.c | 77 + .../fortran/use-mpi-f08/buffer_detach_f08.F90 | 22 + ompi/mpi/fortran/use-mpi-f08/cancel_f08.F90 | 19 + .../fortran/use-mpi-f08/cart_coords_f08.F90 | 21 + .../fortran/use-mpi-f08/cart_create_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/cart_get_f08.F90 | 23 + ompi/mpi/fortran/use-mpi-f08/cart_map_f08.F90 | 23 + .../mpi/fortran/use-mpi-f08/cart_rank_f08.F90 | 21 + .../fortran/use-mpi-f08/cart_shift_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/cart_sub_f08.F90 | 22 + .../fortran/use-mpi-f08/cartdim_get_f08.F90 | 20 + .../fortran/use-mpi-f08/close_port_f08.F90 | 18 + .../fortran/use-mpi-f08/comm_accept_f08.F90 | 24 + .../use-mpi-f08/comm_call_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_compare_f08.F90 | 21 + .../fortran/use-mpi-f08/comm_connect_f08.F90 | 24 + .../comm_create_errhandler_f08.F90 | 26 + .../fortran/use-mpi-f08/comm_create_f08.F90 | 21 + .../use-mpi-f08/comm_create_group_f08.F90 | 22 + .../use-mpi-f08/comm_create_keyval_f08.F90 | 32 + .../use-mpi-f08/comm_delete_attr_f08.F90 | 20 + .../use-mpi-f08/comm_disconnect_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/comm_dup_f08.F90 | 20 + .../use-mpi-f08/comm_dup_with_info_f08.F90 | 21 + .../mpi/fortran/use-mpi-f08/comm_free_f08.F90 | 19 + .../use-mpi-f08/comm_free_keyval_f08.F90 | 18 + .../fortran/use-mpi-f08/comm_get_attr_f08.F90 | 23 + .../use-mpi-f08/comm_get_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_get_info_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_get_name_f08.F90 | 21 + .../use-mpi-f08/comm_get_parent_f08.F90 | 19 + .../fortran/use-mpi-f08/comm_group_f08.F90 | 20 + .../mpi/fortran/use-mpi-f08/comm_idup_f08.F90 | 21 + .../mpi/fortran/use-mpi-f08/comm_join_f08.F90 | 20 + .../mpi/fortran/use-mpi-f08/comm_rank_f08.F90 | 20 + .../use-mpi-f08/comm_remote_group_f08.F90 | 20 + .../use-mpi-f08/comm_remote_size_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_set_attr_f08.F90 | 21 + .../use-mpi-f08/comm_set_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_set_info_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_set_name_f08.F90 | 20 + .../mpi/fortran/use-mpi-f08/comm_size_f08.F90 | 20 + .../fortran/use-mpi-f08/comm_spawn_f08.F90 | 28 + .../use-mpi-f08/comm_spawn_multiple_f08.F90 | 36 + .../fortran/use-mpi-f08/comm_split_f08.F90 | 21 + .../use-mpi-f08/comm_split_type_f08.F90 | 23 + .../use-mpi-f08/comm_test_inter_f08.F90 | 21 + .../use-mpi-f08/compare_and_swap_f08.F90 | 29 + ompi/mpi/fortran/use-mpi-f08/constants.c | 104 + .../fortran/use-mpi-f08/dims_create_f08.F90 | 19 + .../dist_graph_create_adjacent_f08.F90 | 30 + .../use-mpi-f08/dist_graph_create_f08.F90 | 31 + .../dist_graph_neighbors_count_f08.F90 | 22 + .../use-mpi-f08/dist_graph_neighbors_f08.F90 | 24 + .../use-mpi-f08/errhandler_free_f08.F90 | 19 + .../fortran/use-mpi-f08/error_class_f08.F90 | 19 + .../fortran/use-mpi-f08/error_string_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/exscan_f08.F90 | 26 + .../fortran/use-mpi-f08/f_sync_reg_f08.F90 | 18 + .../fortran/use-mpi-f08/fetch_and_op_f08.F90 | 29 + .../use-mpi-f08/file_call_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/file_close_f08.F90 | 19 + .../file_create_errhandler_f08.F90 | 26 + .../fortran/use-mpi-f08/file_delete_f08.F90 | 20 + .../use-mpi-f08/file_get_amode_f08.F90 | 20 + .../use-mpi-f08/file_get_atomicity_f08.F90 | 21 + .../use-mpi-f08/file_get_byte_offset_f08.F90 | 21 + .../use-mpi-f08/file_get_errhandler_f08.F90 | 20 + .../use-mpi-f08/file_get_group_f08.F90 | 20 + .../fortran/use-mpi-f08/file_get_info_f08.F90 | 20 + .../use-mpi-f08/file_get_position_f08.F90 | 20 + .../file_get_position_shared_f08.F90 | 20 + .../fortran/use-mpi-f08/file_get_size_f08.F90 | 20 + .../use-mpi-f08/file_get_type_extent_f08.F90 | 21 + .../fortran/use-mpi-f08/file_get_view_f08.F90 | 24 + .../use-mpi-f08/file_iread_all_f08.F90 | 25 + .../use-mpi-f08/file_iread_at_all_f08.F90 | 27 + .../fortran/use-mpi-f08/file_iread_at_f08.F90 | 27 + .../fortran/use-mpi-f08/file_iread_f08.F90 | 25 + .../use-mpi-f08/file_iread_shared_f08.F90 | 26 + .../use-mpi-f08/file_iwrite_all_f08.F90 | 26 + .../use-mpi-f08/file_iwrite_at_all_f08.F90 | 27 + .../use-mpi-f08/file_iwrite_at_f08.F90 | 27 + .../fortran/use-mpi-f08/file_iwrite_f08.F90 | 26 + .../use-mpi-f08/file_iwrite_shared_f08.F90 | 26 + .../mpi/fortran/use-mpi-f08/file_open_f08.F90 | 24 + .../use-mpi-f08/file_preallocate_f08.F90 | 20 + .../use-mpi-f08/file_read_all_begin_f08.F90 | 24 + .../use-mpi-f08/file_read_all_end_f08.F90 | 23 + .../fortran/use-mpi-f08/file_read_all_f08.F90 | 25 + .../file_read_at_all_begin_f08.F90 | 26 + .../use-mpi-f08/file_read_at_all_end_f08.F90 | 23 + .../use-mpi-f08/file_read_at_all_f08.F90 | 27 + .../fortran/use-mpi-f08/file_read_at_f08.F90 | 26 + .../mpi/fortran/use-mpi-f08/file_read_f08.F90 | 25 + .../file_read_ordered_begin_f08.F90 | 24 + .../use-mpi-f08/file_read_ordered_end_f08.F90 | 23 + .../use-mpi-f08/file_read_ordered_f08.F90 | 26 + .../use-mpi-f08/file_read_shared_f08.F90 | 25 + .../mpi/fortran/use-mpi-f08/file_seek_f08.F90 | 21 + .../use-mpi-f08/file_seek_shared_f08.F90 | 21 + .../use-mpi-f08/file_set_atomicity_f08.F90 | 21 + .../use-mpi-f08/file_set_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/file_set_info_f08.F90 | 20 + .../fortran/use-mpi-f08/file_set_size_f08.F90 | 20 + .../fortran/use-mpi-f08/file_set_view_f08.F90 | 25 + .../mpi/fortran/use-mpi-f08/file_sync_f08.F90 | 19 + .../use-mpi-f08/file_write_all_begin_f08.F90 | 24 + .../use-mpi-f08/file_write_all_end_f08.F90 | 23 + .../use-mpi-f08/file_write_all_f08.F90 | 26 + .../file_write_at_all_begin_f08.F90 | 26 + .../use-mpi-f08/file_write_at_all_end_f08.F90 | 23 + .../use-mpi-f08/file_write_at_all_f08.F90 | 27 + .../fortran/use-mpi-f08/file_write_at_f08.F90 | 27 + .../fortran/use-mpi-f08/file_write_f08.F90 | 26 + .../file_write_ordered_begin_f08.F90 | 24 + .../file_write_ordered_end_f08.F90 | 23 + .../use-mpi-f08/file_write_ordered_f08.F90 | 26 + .../use-mpi-f08/file_write_shared_f08.F90 | 26 + ompi/mpi/fortran/use-mpi-f08/finalize_f08.F90 | 17 + .../mpi/fortran/use-mpi-f08/finalized_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/free_mem_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 | 28 + .../use-mpi-f08/get_accumulate_f08.F90 | 35 + .../fortran/use-mpi-f08/get_address_f08.F90 | 22 + .../mpi/fortran/use-mpi-f08/get_count_f08.F90 | 21 + .../fortran/use-mpi-f08/get_elements_f08.F90 | 21 + .../use-mpi-f08/get_elements_x_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/get_f08.F90 | 28 + .../use-mpi-f08/get_library_version_f08.F90 | 20 + .../use-mpi-f08/get_processor_name_f08.F90 | 19 + .../fortran/use-mpi-f08/get_version_f08.F90 | 18 + .../fortran/use-mpi-f08/graph_create_f08.F90 | 25 + .../mpi/fortran/use-mpi-f08/graph_get_f08.F90 | 21 + .../mpi/fortran/use-mpi-f08/graph_map_f08.F90 | 22 + .../use-mpi-f08/graph_neighbors_count_f08.F90 | 21 + .../use-mpi-f08/graph_neighbors_f08.F90 | 21 + .../fortran/use-mpi-f08/graphdims_get_f08.F90 | 20 + .../use-mpi-f08/grequest_complete_f08.F90 | 19 + .../use-mpi-f08/grequest_start_f08.F90 | 35 + .../fortran/use-mpi-f08/group_compare_f08.F90 | 21 + .../use-mpi-f08/group_difference_f08.F90 | 21 + .../fortran/use-mpi-f08/group_excl_f08.F90 | 22 + .../fortran/use-mpi-f08/group_free_f08.F90 | 19 + .../fortran/use-mpi-f08/group_incl_f08.F90 | 22 + .../use-mpi-f08/group_intersection_f08.F90 | 21 + .../use-mpi-f08/group_range_excl_f08.F90 | 22 + .../use-mpi-f08/group_range_incl_f08.F90 | 22 + .../fortran/use-mpi-f08/group_rank_f08.F90 | 20 + .../fortran/use-mpi-f08/group_size_f08.F90 | 20 + .../use-mpi-f08/group_translate_ranks_f08.F90 | 22 + .../fortran/use-mpi-f08/group_union_f08.F90 | 20 + .../fortran/use-mpi-f08/iallgather_f08.F90 | 27 + .../fortran/use-mpi-f08/iallgatherv_f08.F90 | 29 + .../fortran/use-mpi-f08/iallreduce_f08.F90 | 27 + .../mpi/fortran/use-mpi-f08/ialltoall_f08.F90 | 28 + .../fortran/use-mpi-f08/ialltoallv_f08.F90 | 28 + .../fortran/use-mpi-f08/ialltoallw_f08.F90 | 38 + ompi/mpi/fortran/use-mpi-f08/ibarrier_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/ibcast_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/iexscan_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/igather_f08.F90 | 28 + ompi/mpi/fortran/use-mpi-f08/igatherv_f08.F90 | 29 + ompi/mpi/fortran/use-mpi-f08/improbe_f08.F90 | 36 + ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 | 25 + .../use-mpi-f08/ineighbor_allgather_f08.F90 | 27 + .../use-mpi-f08/ineighbor_allgatherv_f08.F90 | 29 + .../use-mpi-f08/ineighbor_alltoall_f08.F90 | 28 + .../use-mpi-f08/ineighbor_alltoallv_f08.F90 | 29 + .../use-mpi-f08/ineighbor_alltoallw_f08.F90 | 31 + .../fortran/use-mpi-f08/info_create_f08.F90 | 19 + .../fortran/use-mpi-f08/info_delete_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/info_dup_f08.F90 | 20 + .../mpi/fortran/use-mpi-f08/info_free_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/info_get_f08.F90 | 24 + .../use-mpi-f08/info_get_nkeys_f08.F90 | 20 + .../use-mpi-f08/info_get_nthkey_f08.F90 | 21 + .../use-mpi-f08/info_get_valuelen_f08.F90 | 23 + ompi/mpi/fortran/use-mpi-f08/info_set_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/init_f08.F90 | 17 + .../fortran/use-mpi-f08/init_thread_f08.F90 | 19 + .../fortran/use-mpi-f08/initialized_f08.F90 | 19 + .../use-mpi-f08/intercomm_create_f08.F90 | 23 + .../use-mpi-f08/intercomm_merge_f08.F90 | 22 + ompi/mpi/fortran/use-mpi-f08/iprobe_f08.F90 | 36 + ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/ireduce_f08.F90 | 27 + .../use-mpi-f08/ireduce_scatter_block_f08.F90 | 27 + .../use-mpi-f08/ireduce_scatter_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 | 25 + .../use-mpi-f08/is_thread_main_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/iscan_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/iscatter_f08.F90 | 28 + .../mpi/fortran/use-mpi-f08/iscatterv_f08.F90 | 29 + ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 | 25 + .../fortran/use-mpi-f08/lookup_name_f08.F90 | 22 + .../use-mpi-f08/mpi-f-interfaces-bind.h | 3478 +++++++ .../fortran/use-mpi-f08/mpi-f08-callbacks.F90 | 142 + .../mpi-f08-interfaces-callbacks.F90 | 220 + .../use-mpi-f08/mpi-f08-interfaces.F90 | 4748 +++++++++ .../mpi/fortran/use-mpi-f08/mpi-f08-types.F90 | 314 + ompi/mpi/fortran/use-mpi-f08/mpi-f08.F90 | 45 + ompi/mpi/fortran/use-mpi-f08/mprobe_f08.F90 | 22 + ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 | 25 + .../use-mpi-f08/neighbor_allgather_f08.F90 | 26 + .../use-mpi-f08/neighbor_allgatherv_f08.F90 | 28 + .../use-mpi-f08/neighbor_alltoall_f08.F90 | 27 + .../use-mpi-f08/neighbor_alltoallv_f08.F90 | 28 + .../use-mpi-f08/neighbor_alltoallw_f08.F90 | 30 + .../use-mpi-f08/op_commutative_f08.F90 | 21 + .../mpi/fortran/use-mpi-f08/op_create_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/op_free_f08.F90 | 19 + .../mpi/fortran/use-mpi-f08/open_port_f08.F90 | 20 + .../fortran/use-mpi-f08/pack_external_f08.F90 | 28 + .../use-mpi-f08/pack_external_size_f08.F90 | 22 + ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 | 26 + .../mpi/fortran/use-mpi-f08/pack_size_f08.F90 | 22 + ompi/mpi/fortran/use-mpi-f08/pcontrol_f08.F90 | 15 + .../use-mpi-f08/pmpi-f-interfaces-bind.h | 3261 +++++++ .../use-mpi-f08/pmpi-f08-interfaces.F90 | 4645 +++++++++ ompi/mpi/fortran/use-mpi-f08/probe_f08.F90 | 21 + .../use-mpi-f08/profile/pabort_f08.F90 | 20 + .../use-mpi-f08/profile/paccumulate_f08.F90 | 31 + .../profile/padd_error_class_f08.F90 | 18 + .../profile/padd_error_code_f08.F90 | 19 + .../profile/padd_error_string_f08.F90 | 19 + .../use-mpi-f08/profile/paint_add_f08.F90 | 18 + .../use-mpi-f08/profile/paint_diff_f08.F90 | 18 + .../use-mpi-f08/profile/pallgather_f08.F90 | 26 + .../use-mpi-f08/profile/pallgatherv_f08.F90 | 28 + .../use-mpi-f08/profile/palloc_mem_f08.F90 | 22 + .../use-mpi-f08/profile/pallreduce_f08.F90 | 26 + .../use-mpi-f08/profile/palltoall_f08.F90 | 27 + .../use-mpi-f08/profile/palltoallv_f08.F90 | 27 + .../use-mpi-f08/profile/palltoallw_f08.F90 | 27 + .../use-mpi-f08/profile/pbarrier_f08.F90 | 19 + .../use-mpi-f08/profile/pbcast_f08.F90 | 24 + .../use-mpi-f08/profile/pbsend_f08.F90 | 24 + .../use-mpi-f08/profile/pbsend_init_f08.F90 | 26 + .../profile/pbuffer_attach_f08.F90 | 21 + .../profile/pbuffer_detach_f08.F90 | 22 + .../use-mpi-f08/profile/pcancel_f08.F90 | 19 + .../use-mpi-f08/profile/pcart_coords_f08.F90 | 21 + .../use-mpi-f08/profile/pcart_create_f08.F90 | 25 + .../use-mpi-f08/profile/pcart_get_f08.F90 | 23 + .../use-mpi-f08/profile/pcart_map_f08.F90 | 23 + .../use-mpi-f08/profile/pcart_rank_f08.F90 | 21 + .../use-mpi-f08/profile/pcart_shift_f08.F90 | 21 + .../use-mpi-f08/profile/pcart_sub_f08.F90 | 22 + .../use-mpi-f08/profile/pcartdim_get_f08.F90 | 20 + .../use-mpi-f08/profile/pclose_port_f08.F90 | 18 + .../use-mpi-f08/profile/pcomm_accept_f08.F90 | 24 + .../profile/pcomm_call_errhandler_f08.F90 | 20 + .../use-mpi-f08/profile/pcomm_compare_f08.F90 | 21 + .../use-mpi-f08/profile/pcomm_connect_f08.F90 | 24 + .../profile/pcomm_create_errhandler_f08.F90 | 26 + .../use-mpi-f08/profile/pcomm_create_f08.F90 | 21 + .../profile/pcomm_create_group_f08.F90 | 22 + .../profile/pcomm_create_keyval_f08.F90 | 32 + .../profile/pcomm_delete_attr_f08.F90 | 20 + .../profile/pcomm_disconnect_f08.F90 | 19 + .../use-mpi-f08/profile/pcomm_dup_f08.F90 | 20 + .../profile/pcomm_dup_with_info_f08.F90 | 21 + .../use-mpi-f08/profile/pcomm_free_f08.F90 | 19 + .../profile/pcomm_free_keyval_f08.F90 | 18 + .../profile/pcomm_get_attr_f08.F90 | 23 + .../profile/pcomm_get_errhandler_f08.F90 | 20 + .../profile/pcomm_get_info_f08.F90 | 20 + .../profile/pcomm_get_name_f08.F90 | 21 + .../profile/pcomm_get_parent_f08.F90 | 19 + .../use-mpi-f08/profile/pcomm_group_f08.F90 | 20 + .../use-mpi-f08/profile/pcomm_idup_f08.F90 | 21 + .../use-mpi-f08/profile/pcomm_join_f08.F90 | 20 + .../use-mpi-f08/profile/pcomm_rank_f08.F90 | 20 + .../profile/pcomm_remote_group_f08.F90 | 20 + .../profile/pcomm_remote_size_f08.F90 | 20 + .../profile/pcomm_set_attr_f08.F90 | 21 + .../profile/pcomm_set_errhandler_f08.F90 | 20 + .../profile/pcomm_set_info_f08.F90 | 20 + .../profile/pcomm_set_name_f08.F90 | 20 + .../use-mpi-f08/profile/pcomm_size_f08.F90 | 20 + .../use-mpi-f08/profile/pcomm_spawn_f08.F90 | 28 + .../profile/pcomm_spawn_multiple_f08.F90 | 37 + .../use-mpi-f08/profile/pcomm_split_f08.F90 | 21 + .../profile/pcomm_split_type_f08.F90 | 23 + .../profile/pcomm_test_inter_f08.F90 | 21 + .../profile/pcompare_and_swap_f08.F90 | 29 + .../use-mpi-f08/profile/pdims_create_f08.F90 | 19 + .../pdist_graph_create_adjacent_f08.F90 | 30 + .../profile/pdist_graph_create_f08.F90 | 31 + .../pdist_graph_neighbors_count_f08.F90 | 22 + .../profile/pdist_graph_neighbors_f08.F90 | 24 + .../profile/perrhandler_free_f08.F90 | 19 + .../use-mpi-f08/profile/perror_class_f08.F90 | 19 + .../use-mpi-f08/profile/perror_string_f08.F90 | 20 + .../use-mpi-f08/profile/pexscan_f08.F90 | 26 + .../use-mpi-f08/profile/pf_sync_reg_f08.F90 | 18 + .../use-mpi-f08/profile/pfetch_and_op_f08.F90 | 29 + .../profile/pfile_call_errhandler_f08.F90 | 20 + .../use-mpi-f08/profile/pfile_close_f08.F90 | 19 + .../profile/pfile_create_errhandler_f08.F90 | 26 + .../use-mpi-f08/profile/pfile_delete_f08.F90 | 20 + .../profile/pfile_get_amode_f08.F90 | 20 + .../profile/pfile_get_atomicity_f08.F90 | 21 + .../profile/pfile_get_byte_offset_f08.F90 | 21 + .../profile/pfile_get_errhandler_f08.F90 | 20 + .../profile/pfile_get_group_f08.F90 | 20 + .../profile/pfile_get_info_f08.F90 | 20 + .../profile/pfile_get_position_f08.F90 | 20 + .../profile/pfile_get_position_shared_f08.F90 | 20 + .../profile/pfile_get_size_f08.F90 | 20 + .../profile/pfile_get_type_extent_f08.F90 | 21 + .../profile/pfile_get_view_f08.F90 | 24 + .../profile/pfile_iread_at_f08.F90 | 27 + .../use-mpi-f08/profile/pfile_iread_f08.F90 | 25 + .../profile/pfile_iread_shared_f08.F90 | 26 + .../profile/pfile_iwrite_at_f08.F90 | 27 + .../use-mpi-f08/profile/pfile_iwrite_f08.F90 | 26 + .../profile/pfile_iwrite_shared_f08.F90 | 26 + .../use-mpi-f08/profile/pfile_open_f08.F90 | 24 + .../profile/pfile_preallocate_f08.F90 | 20 + .../profile/pfile_read_all_begin_f08.F90 | 24 + .../profile/pfile_read_all_end_f08.F90 | 23 + .../profile/pfile_read_all_f08.F90 | 25 + .../profile/pfile_read_at_all_begin_f08.F90 | 26 + .../profile/pfile_read_at_all_end_f08.F90 | 23 + .../profile/pfile_read_at_all_f08.F90 | 27 + .../use-mpi-f08/profile/pfile_read_at_f08.F90 | 26 + .../use-mpi-f08/profile/pfile_read_f08.F90 | 25 + .../profile/pfile_read_ordered_begin_f08.F90 | 24 + .../profile/pfile_read_ordered_end_f08.F90 | 23 + .../profile/pfile_read_ordered_f08.F90 | 26 + .../profile/pfile_read_shared_f08.F90 | 25 + .../use-mpi-f08/profile/pfile_seek_f08.F90 | 21 + .../profile/pfile_seek_shared_f08.F90 | 21 + .../profile/pfile_set_atomicity_f08.F90 | 21 + .../profile/pfile_set_errhandler_f08.F90 | 20 + .../profile/pfile_set_info_f08.F90 | 20 + .../profile/pfile_set_size_f08.F90 | 20 + .../profile/pfile_set_view_f08.F90 | 25 + .../use-mpi-f08/profile/pfile_sync_f08.F90 | 19 + .../profile/pfile_write_all_begin_f08.F90 | 24 + .../profile/pfile_write_all_end_f08.F90 | 23 + .../profile/pfile_write_all_f08.F90 | 26 + .../profile/pfile_write_at_all_begin_f08.F90 | 26 + .../profile/pfile_write_at_all_end_f08.F90 | 23 + .../profile/pfile_write_at_all_f08.F90 | 27 + .../profile/pfile_write_at_f08.F90 | 27 + .../use-mpi-f08/profile/pfile_write_f08.F90 | 26 + .../profile/pfile_write_ordered_begin_f08.F90 | 24 + .../profile/pfile_write_ordered_end_f08.F90 | 23 + .../profile/pfile_write_ordered_f08.F90 | 26 + .../profile/pfile_write_shared_f08.F90 | 26 + .../use-mpi-f08/profile/pfinalize_f08.F90 | 17 + .../use-mpi-f08/profile/pfinalized_f08.F90 | 19 + .../use-mpi-f08/profile/pfree_mem_f08.F90 | 22 + .../use-mpi-f08/profile/pgather_f08.F90 | 27 + .../use-mpi-f08/profile/pgatherv_f08.F90 | 28 + .../profile/pget_accumulate_f08.F90 | 35 + .../use-mpi-f08/profile/pget_address_f08.F90 | 22 + .../use-mpi-f08/profile/pget_count_f08.F90 | 21 + .../use-mpi-f08/profile/pget_elements_f08.F90 | 21 + .../profile/pget_elements_x_f08.F90 | 21 + .../fortran/use-mpi-f08/profile/pget_f08.F90 | 28 + .../profile/pget_library_version_f08.F90 | 20 + .../profile/pget_processor_name_f08.F90 | 20 + .../use-mpi-f08/profile/pget_version_f08.F90 | 18 + .../use-mpi-f08/profile/pgraph_create_f08.F90 | 25 + .../use-mpi-f08/profile/pgraph_get_f08.F90 | 21 + .../use-mpi-f08/profile/pgraph_map_f08.F90 | 22 + .../profile/pgraph_neighbors_count_f08.F90 | 21 + .../profile/pgraph_neighbors_f08.F90 | 21 + .../profile/pgraphdims_get_f08.F90 | 20 + .../profile/pgrequest_complete_f08.F90 | 19 + .../profile/pgrequest_start_f08.F90 | 35 + .../profile/pgroup_compare_f08.F90 | 21 + .../profile/pgroup_difference_f08.F90 | 21 + .../use-mpi-f08/profile/pgroup_excl_f08.F90 | 22 + .../use-mpi-f08/profile/pgroup_free_f08.F90 | 19 + .../use-mpi-f08/profile/pgroup_incl_f08.F90 | 22 + .../profile/pgroup_intersection_f08.F90 | 21 + .../profile/pgroup_range_excl_f08.F90 | 22 + .../profile/pgroup_range_incl_f08.F90 | 22 + .../use-mpi-f08/profile/pgroup_rank_f08.F90 | 20 + .../use-mpi-f08/profile/pgroup_size_f08.F90 | 20 + .../profile/pgroup_translate_ranks_f08.F90 | 22 + .../use-mpi-f08/profile/pgroup_union_f08.F90 | 20 + .../use-mpi-f08/profile/piallgather_f08.F90 | 27 + .../use-mpi-f08/profile/piallgatherv_f08.F90 | 29 + .../use-mpi-f08/profile/piallreduce_f08.F90 | 27 + .../use-mpi-f08/profile/pialltoall_f08.F90 | 28 + .../use-mpi-f08/profile/pialltoallv_f08.F90 | 28 + .../use-mpi-f08/profile/pialltoallw_f08.F90 | 28 + .../use-mpi-f08/profile/pibarrier_f08.F90 | 20 + .../use-mpi-f08/profile/pibcast_f08.F90 | 25 + .../use-mpi-f08/profile/pibsend_f08.F90 | 25 + .../use-mpi-f08/profile/piexscan_f08.F90 | 27 + .../use-mpi-f08/profile/pigather_f08.F90 | 28 + .../use-mpi-f08/profile/pigatherv_f08.F90 | 29 + .../use-mpi-f08/profile/pimprobe_f08.F90 | 37 + .../use-mpi-f08/profile/pimrecv_f08.F90 | 25 + .../profile/pineighbor_allgather_f08.F90 | 27 + .../profile/pineighbor_allgatherv_f08.F90 | 29 + .../profile/pineighbor_alltoall_f08.F90 | 28 + .../profile/pineighbor_alltoallv_f08.F90 | 29 + .../profile/pineighbor_alltoallw_f08.F90 | 30 + .../use-mpi-f08/profile/pinfo_create_f08.F90 | 19 + .../use-mpi-f08/profile/pinfo_delete_f08.F90 | 20 + .../use-mpi-f08/profile/pinfo_dup_f08.F90 | 20 + .../use-mpi-f08/profile/pinfo_free_f08.F90 | 19 + .../use-mpi-f08/profile/pinfo_get_f08.F90 | 24 + .../profile/pinfo_get_nkeys_f08.F90 | 20 + .../profile/pinfo_get_nthkey_f08.F90 | 21 + .../profile/pinfo_get_valuelen_f08.F90 | 23 + .../use-mpi-f08/profile/pinfo_set_f08.F90 | 20 + .../fortran/use-mpi-f08/profile/pinit_f08.F90 | 17 + .../use-mpi-f08/profile/pinit_thread_f08.F90 | 19 + .../use-mpi-f08/profile/pinitialized_f08.F90 | 19 + .../profile/pintercomm_create_f08.F90 | 23 + .../profile/pintercomm_merge_f08.F90 | 22 + .../use-mpi-f08/profile/piprobe_f08.F90 | 34 + .../use-mpi-f08/profile/pirecv_f08.F90 | 25 + .../use-mpi-f08/profile/pireduce_f08.F90 | 27 + .../profile/pireduce_scatter_block_f08.F90 | 27 + .../profile/pireduce_scatter_f08.F90 | 27 + .../use-mpi-f08/profile/pirsend_f08.F90 | 25 + .../profile/pis_thread_main_f08.F90 | 19 + .../use-mpi-f08/profile/piscan_f08.F90 | 27 + .../use-mpi-f08/profile/piscatter_f08.F90 | 28 + .../use-mpi-f08/profile/piscatterv_f08.F90 | 29 + .../use-mpi-f08/profile/pisend_f08.F90 | 25 + .../use-mpi-f08/profile/pissend_f08.F90 | 25 + .../use-mpi-f08/profile/plookup_name_f08.F90 | 22 + .../use-mpi-f08/profile/pmprobe_f08.F90 | 22 + .../use-mpi-f08/profile/pmrecv_f08.F90 | 25 + .../profile/pneighbor_allgather_f08.F90 | 26 + .../profile/pneighbor_allgatherv_f08.F90 | 28 + .../profile/pneighbor_alltoall_f08.F90 | 27 + .../profile/pneighbor_alltoallv_f08.F90 | 28 + .../profile/pneighbor_alltoallw_f08.F90 | 29 + .../profile/pop_commutative_f08.F90 | 21 + .../use-mpi-f08/profile/pop_create_f08.F90 | 25 + .../use-mpi-f08/profile/pop_free_f08.F90 | 19 + .../use-mpi-f08/profile/popen_port_f08.F90 | 20 + .../profile/ppack_external_f08.F90 | 28 + .../profile/ppack_external_size_f08.F90 | 22 + .../fortran/use-mpi-f08/profile/ppack_f08.F90 | 26 + .../use-mpi-f08/profile/ppack_size_f08.F90 | 22 + .../use-mpi-f08/profile/ppcontrol_f08.F90 | 15 + .../use-mpi-f08/profile/pprobe_f08.F90 | 21 + .../use-mpi-f08/profile/ppublish_name_f08.F90 | 21 + .../fortran/use-mpi-f08/profile/pput_f08.F90 | 28 + .../use-mpi-f08/profile/pquery_thread_f08.F90 | 18 + .../use-mpi-f08/profile/praccumulate_f08.F90 | 32 + .../fortran/use-mpi-f08/profile/precv_f08.F90 | 25 + .../use-mpi-f08/profile/precv_init_f08.F90 | 25 + .../use-mpi-f08/profile/preduce_f08.F90 | 26 + .../use-mpi-f08/profile/preduce_local_f08.F90 | 24 + .../profile/preduce_scatter_block_f08.F90 | 26 + .../profile/preduce_scatter_f08.F90 | 26 + .../profile/pregister_datarep_f08.F90 | 34 + .../use-mpi-f08/profile/prequest_free_f08.F90 | 19 + .../profile/prequest_get_status_f08.F90 | 31 + .../profile/prget_accumulate_f08.F90 | 36 + .../fortran/use-mpi-f08/profile/prget_f08.F90 | 30 + .../fortran/use-mpi-f08/profile/prput_f08.F90 | 30 + .../use-mpi-f08/profile/prsend_f08.F90 | 24 + .../use-mpi-f08/profile/prsend_init_f08.F90 | 25 + .../fortran/use-mpi-f08/profile/pscan_f08.F90 | 26 + .../use-mpi-f08/profile/pscatter_f08.F90 | 27 + .../use-mpi-f08/profile/pscatterv_f08.F90 | 28 + .../fortran/use-mpi-f08/profile/psend_f08.F90 | 24 + .../use-mpi-f08/profile/psend_init_f08.F90 | 26 + .../use-mpi-f08/profile/psendrecv_f08.F90 | 28 + .../profile/psendrecv_replace_f08.F90 | 27 + .../use-mpi-f08/profile/pssend_f08.F90 | 24 + .../use-mpi-f08/profile/pssend_init_f08.F90 | 26 + .../use-mpi-f08/profile/pstart_f08.F90 | 19 + .../use-mpi-f08/profile/pstartall_f08.F90 | 20 + .../profile/pstatus_set_cancelled_f08.F90 | 29 + .../profile/pstatus_set_elements_f08.F90 | 21 + .../profile/pstatus_set_elements_x_f08.F90 | 21 + .../profile/ptest_cancelled_f08.F90 | 29 + .../fortran/use-mpi-f08/profile/ptest_f08.F90 | 31 + .../use-mpi-f08/profile/ptestall_f08.F90 | 33 + .../use-mpi-f08/profile/ptestany_f08.F90 | 36 + .../use-mpi-f08/profile/ptestsome_f08.F90 | 38 + .../use-mpi-f08/profile/ptopo_test_f08.F90 | 20 + .../use-mpi-f08/profile/ptype_commit_f08.F90 | 19 + .../profile/ptype_contiguous_f08.F90 | 21 + .../profile/ptype_create_darray_f08.F90 | 26 + .../profile/ptype_create_f90_complex_f08.F90 | 20 + .../profile/ptype_create_f90_integer_f08.F90 | 20 + .../profile/ptype_create_f90_real_f08.F90 | 20 + .../ptype_create_hindexed_block_f08.F90 | 26 + .../profile/ptype_create_hindexed_f08.F90 | 26 + .../profile/ptype_create_hvector_f08.F90 | 23 + .../ptype_create_indexed_block_f08.F90 | 24 + .../profile/ptype_create_keyval_f08.F90 | 32 + .../profile/ptype_create_resized_f08.F90 | 21 + .../profile/ptype_create_struct_f08.F90 | 25 + .../profile/ptype_create_subarray_f08.F90 | 25 + .../profile/ptype_delete_attr_f08.F90 | 20 + .../use-mpi-f08/profile/ptype_dup_f08.F90 | 20 + .../use-mpi-f08/profile/ptype_free_f08.F90 | 19 + .../profile/ptype_free_keyval_f08.F90 | 18 + .../profile/ptype_get_attr_f08.F90 | 23 + .../profile/ptype_get_contents_f08.F90 | 27 + .../profile/ptype_get_envelope_f08.F90 | 22 + .../profile/ptype_get_extent_f08.F90 | 20 + .../profile/ptype_get_extent_x_f08.F90 | 20 + .../profile/ptype_get_name_f08.F90 | 21 + .../profile/ptype_get_true_extent_f08.F90 | 20 + .../profile/ptype_get_true_extent_x_f08.F90 | 20 + .../use-mpi-f08/profile/ptype_indexed_f08.F90 | 24 + .../profile/ptype_match_size_f08.F90 | 20 + .../profile/ptype_set_attr_f08.F90 | 21 + .../profile/ptype_set_name_f08.F90 | 20 + .../use-mpi-f08/profile/ptype_size_f08.F90 | 20 + .../use-mpi-f08/profile/ptype_size_x_f08.F90 | 22 + .../use-mpi-f08/profile/ptype_vector_f08.F90 | 22 + .../profile/punpack_external_f08.F90 | 27 + .../use-mpi-f08/profile/punpack_f08.F90 | 26 + .../profile/punpublish_name_f08.F90 | 21 + .../fortran/use-mpi-f08/profile/pwait_f08.F90 | 20 + .../use-mpi-f08/profile/pwaitall_f08.F90 | 21 + .../use-mpi-f08/profile/pwaitany_f08.F90 | 22 + .../use-mpi-f08/profile/pwaitsome_f08.F90 | 25 + .../use-mpi-f08/profile/pwin_allocate_f08.F90 | 28 + .../profile/pwin_allocate_shared_f08.F90 | 26 + .../use-mpi-f08/profile/pwin_attach_f08.F90 | 22 + .../profile/pwin_call_errhandler_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_complete_f08.F90 | 19 + .../profile/pwin_create_dynamic_f08.F90 | 23 + .../profile/pwin_create_errhandler_f08.F90 | 26 + .../use-mpi-f08/profile/pwin_create_f08.F90 | 27 + .../profile/pwin_create_keyval_f08.F90 | 32 + .../profile/pwin_delete_attr_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_detach_f08.F90 | 21 + .../use-mpi-f08/profile/pwin_fence_f08.F90 | 20 + .../profile/pwin_flush_all_f08.F90 | 19 + .../use-mpi-f08/profile/pwin_flush_f08.F90 | 20 + .../profile/pwin_flush_local_all_f08.F90 | 19 + .../profile/pwin_flush_local_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_free_f08.F90 | 19 + .../profile/pwin_free_keyval_f08.F90 | 18 + .../use-mpi-f08/profile/pwin_get_attr_f08.F90 | 23 + .../profile/pwin_get_errhandler_f08.F90 | 20 + .../profile/pwin_get_group_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_get_info_f08.F90 | 19 + .../use-mpi-f08/profile/pwin_get_name_f08.F90 | 22 + .../use-mpi-f08/profile/pwin_lock_all_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_lock_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_post_f08.F90 | 21 + .../use-mpi-f08/profile/pwin_set_attr_f08.F90 | 21 + .../profile/pwin_set_errhandler_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_set_info_f08.F90 | 19 + .../use-mpi-f08/profile/pwin_set_name_f08.F90 | 20 + .../profile/pwin_shared_query_f08.F90 | 25 + .../use-mpi-f08/profile/pwin_start_f08.F90 | 21 + .../use-mpi-f08/profile/pwin_sync_f08.F90 | 19 + .../use-mpi-f08/profile/pwin_test_f08.F90 | 21 + .../profile/pwin_unlock_all_f08.F90 | 19 + .../use-mpi-f08/profile/pwin_unlock_f08.F90 | 20 + .../use-mpi-f08/profile/pwin_wait_f08.F90 | 19 + .../fortran/use-mpi-f08/publish_name_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/put_f08.F90 | 28 + .../fortran/use-mpi-f08/query_thread_f08.F90 | 18 + .../fortran/use-mpi-f08/raccumulate_f08.F90 | 32 + ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 | 25 + .../mpi/fortran/use-mpi-f08/recv_init_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/reduce_f08.F90 | 26 + .../fortran/use-mpi-f08/reduce_local_f08.F90 | 24 + .../use-mpi-f08/reduce_scatter_block_f08.F90 | 26 + .../use-mpi-f08/reduce_scatter_f08.F90 | 26 + .../use-mpi-f08/register_datarep_f08.F90 | 34 + .../fortran/use-mpi-f08/request_free_f08.F90 | 19 + .../use-mpi-f08/request_get_status_f08.F90 | 31 + .../use-mpi-f08/rget_accumulate_f08.F90 | 36 + ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 | 30 + ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 | 30 + ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 | 24 + .../fortran/use-mpi-f08/rsend_init_f08.F90 | 25 + ompi/mpi/fortran/use-mpi-f08/scan_f08.F90 | 26 + ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 | 28 + ompi/mpi/fortran/use-mpi-f08/send_f08.F90 | 24 + .../mpi/fortran/use-mpi-f08/send_init_f08.F90 | 26 + ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 | 28 + .../use-mpi-f08/sendrecv_replace_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 | 24 + .../fortran/use-mpi-f08/ssend_init_f08.F90 | 26 + ompi/mpi/fortran/use-mpi-f08/start_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/startall_f08.F90 | 20 + .../use-mpi-f08/status_set_cancelled_f08.F90 | 27 + .../use-mpi-f08/status_set_elements_f08.F90 | 21 + .../use-mpi-f08/status_set_elements_x_f08.F90 | 21 + .../use-mpi-f08/test_cancelled_f08.F90 | 29 + ompi/mpi/fortran/use-mpi-f08/test_f08.F90 | 31 + ompi/mpi/fortran/use-mpi-f08/testall_f08.F90 | 33 + ompi/mpi/fortran/use-mpi-f08/testany_f08.F90 | 36 + ompi/mpi/fortran/use-mpi-f08/tests/contig.f90 | 22 + .../fortran/use-mpi-f08/tests/print_array.c | 10 + ompi/mpi/fortran/use-mpi-f08/testsome_f08.F90 | 38 + .../mpi/fortran/use-mpi-f08/topo_test_f08.F90 | 20 + .../fortran/use-mpi-f08/type_commit_f08.F90 | 19 + .../use-mpi-f08/type_contiguous_f08.F90 | 21 + .../use-mpi-f08/type_create_darray_f08.F90 | 26 + .../type_create_f90_complex_f08.F90 | 20 + .../type_create_f90_integer_f08.F90 | 20 + .../use-mpi-f08/type_create_f90_real_f08.F90 | 20 + .../type_create_hindexed_block_f08.F90 | 26 + .../use-mpi-f08/type_create_hindexed_f08.F90 | 26 + .../use-mpi-f08/type_create_hvector_f08.F90 | 23 + .../type_create_indexed_block_f08.F90 | 24 + .../use-mpi-f08/type_create_keyval_f08.F90 | 32 + .../use-mpi-f08/type_create_resized_f08.F90 | 21 + .../use-mpi-f08/type_create_struct_f08.F90 | 25 + .../use-mpi-f08/type_create_subarray_f08.F90 | 25 + .../use-mpi-f08/type_delete_attr_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/type_dup_f08.F90 | 20 + .../mpi/fortran/use-mpi-f08/type_free_f08.F90 | 19 + .../use-mpi-f08/type_free_keyval_f08.F90 | 18 + .../fortran/use-mpi-f08/type_get_attr_f08.F90 | 23 + .../use-mpi-f08/type_get_contents_f08.F90 | 27 + .../use-mpi-f08/type_get_envelope_f08.F90 | 22 + .../use-mpi-f08/type_get_extent_f08.F90 | 20 + .../use-mpi-f08/type_get_extent_x_f08.F90 | 20 + .../fortran/use-mpi-f08/type_get_name_f08.F90 | 21 + .../use-mpi-f08/type_get_true_extent_f08.F90 | 20 + .../type_get_true_extent_x_f08.F90 | 20 + .../fortran/use-mpi-f08/type_indexed_f08.F90 | 24 + .../use-mpi-f08/type_match_size_f08.F90 | 20 + .../fortran/use-mpi-f08/type_set_attr_f08.F90 | 21 + .../fortran/use-mpi-f08/type_set_name_f08.F90 | 20 + .../mpi/fortran/use-mpi-f08/type_size_f08.F90 | 20 + .../fortran/use-mpi-f08/type_size_x_f08.F90 | 22 + .../fortran/use-mpi-f08/type_vector_f08.F90 | 22 + .../use-mpi-f08/unpack_external_f08.F90 | 27 + ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 | 26 + .../use-mpi-f08/unpublish_name_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/wait_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/waitall_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/waitany_f08.F90 | 22 + ompi/mpi/fortran/use-mpi-f08/waitsome_f08.F90 | 25 + .../fortran/use-mpi-f08/win_allocate_f08.F90 | 28 + .../use-mpi-f08/win_allocate_shared_f08.F90 | 26 + .../fortran/use-mpi-f08/win_attach_f08.F90 | 22 + .../use-mpi-f08/win_call_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/win_complete_f08.F90 | 19 + .../use-mpi-f08/win_create_dynamic_f08.F90 | 23 + .../use-mpi-f08/win_create_errhandler_f08.F90 | 26 + .../fortran/use-mpi-f08/win_create_f08.F90 | 27 + .../use-mpi-f08/win_create_keyval_f08.F90 | 32 + .../use-mpi-f08/win_delete_attr_f08.F90 | 20 + .../fortran/use-mpi-f08/win_detach_f08.F90 | 21 + .../mpi/fortran/use-mpi-f08/win_fence_f08.F90 | 20 + .../fortran/use-mpi-f08/win_flush_all_f08.F90 | 19 + .../mpi/fortran/use-mpi-f08/win_flush_f08.F90 | 20 + .../use-mpi-f08/win_flush_local_all_f08.F90 | 19 + .../use-mpi-f08/win_flush_local_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/win_free_f08.F90 | 19 + .../use-mpi-f08/win_free_keyval_f08.F90 | 18 + .../fortran/use-mpi-f08/win_get_attr_f08.F90 | 23 + .../use-mpi-f08/win_get_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/win_get_group_f08.F90 | 20 + .../fortran/use-mpi-f08/win_get_info_f08.F90 | 19 + .../fortran/use-mpi-f08/win_get_name_f08.F90 | 22 + .../fortran/use-mpi-f08/win_lock_all_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/win_lock_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/win_post_f08.F90 | 21 + .../fortran/use-mpi-f08/win_set_attr_f08.F90 | 21 + .../use-mpi-f08/win_set_errhandler_f08.F90 | 20 + .../fortran/use-mpi-f08/win_set_info_f08.F90 | 19 + .../fortran/use-mpi-f08/win_set_name_f08.F90 | 20 + .../use-mpi-f08/win_shared_query_f08.F90 | 25 + .../mpi/fortran/use-mpi-f08/win_start_f08.F90 | 21 + ompi/mpi/fortran/use-mpi-f08/win_sync_f08.F90 | 19 + ompi/mpi/fortran/use-mpi-f08/win_test_f08.F90 | 21 + .../use-mpi-f08/win_unlock_all_f08.F90 | 19 + .../fortran/use-mpi-f08/win_unlock_f08.F90 | 20 + ompi/mpi/fortran/use-mpi-f08/win_wait_f08.F90 | 19 + .../fortran/use-mpi-ignore-tkr/Makefile.am | 120 + .../mpi-ignore-tkr-file-interfaces.h.in | 1645 ++++ .../mpi-ignore-tkr-interfaces.h.in | 8490 +++++++++++++++++ .../use-mpi-ignore-tkr/mpi-ignore-tkr.F90 | 51 + ompi/mpi/fortran/use-mpi-tkr/Makefile.am | 174 + .../fortran/use-mpi-tkr/fortran_kinds.sh.in | 84 + .../fortran/use-mpi-tkr/fortran_sizes.h.in | 56 + .../use-mpi-tkr/mpi-f90-cptr-interfaces.h | 106 + .../use-mpi-tkr/mpi-f90-file-interfaces.h | 321 + .../fortran/use-mpi-tkr/mpi-f90-interfaces.h | 2618 +++++ ompi/mpi/fortran/use-mpi-tkr/mpi.F90 | 65 + .../fortran/use-mpi-tkr/mpi_aint_add_f90.f90 | 31 + .../fortran/use-mpi-tkr/mpi_aint_diff_f90.f90 | 31 + .../mpi_comm_spawn_multiple_f90.f90 | 60 + .../fortran/use-mpi-tkr/mpi_testall_f90.f90 | 43 + .../fortran/use-mpi-tkr/mpi_testsome_f90.f90 | 47 + .../fortran/use-mpi-tkr/mpi_waitall_f90.f90 | 39 + .../fortran/use-mpi-tkr/mpi_waitsome_f90.f90 | 47 + .../mpi/fortran/use-mpi-tkr/mpi_wtick_f90.f90 | 27 + .../mpi/fortran/use-mpi-tkr/mpi_wtime_f90.f90 | 27 + .../use-mpi-tkr/pmpi-f90-cptr-interfaces.h | 108 + .../use-mpi-tkr/pmpi-f90-file-interfaces.h | 321 + .../fortran/use-mpi-tkr/pmpi-f90-interfaces.h | 2618 +++++ ompi/mpi/fortran/use-mpi-tkr/test/align_c.c | 73 + .../fortran/use-mpi-tkr/test/print_align.f90 | 108 + .../fortran/use-mpi-tkr/test/print_ikinds.f90 | 37 + .../use-mpi-tkr/test/print_prec_range.f90 | 48 + .../fortran/use-mpi-tkr/test/print_rkinds.f90 | 41 + ompi/mpi/fortran/use-mpi-tkr/test/send_t.c | 71 + .../fortran/use-mpi-tkr/test/test_send.f90 | 54 + ompi/mpi/help-mpi-api.txt | 27 + ompi/mpi/java/Makefile.am | 12 + ompi/mpi/java/README | 53 + ompi/mpi/java/c/Makefile.am | 53 + ompi/mpi/java/c/mpiJava.h | 177 + ompi/mpi/java/c/mpi_CartComm.c | 194 + ompi/mpi/java/c/mpi_Comm.c | 2258 +++++ ompi/mpi/java/c/mpi_Constant.c | 179 + ompi/mpi/java/c/mpi_Count.c | 52 + ompi/mpi/java/c/mpi_Datatype.c | 365 + ompi/mpi/java/c/mpi_Errhandler.c | 65 + ompi/mpi/java/c/mpi_File.c | 654 ++ ompi/mpi/java/c/mpi_GraphComm.c | 169 + ompi/mpi/java/c/mpi_Group.c | 239 + ompi/mpi/java/c/mpi_Info.c | 141 + ompi/mpi/java/c/mpi_Intercomm.c | 124 + ompi/mpi/java/c/mpi_Intracomm.c | 584 ++ ompi/mpi/java/c/mpi_MPI.c | 1226 +++ ompi/mpi/java/c/mpi_Message.c | 103 + ompi/mpi/java/c/mpi_Op.c | 171 + ompi/mpi/java/c/mpi_Prequest.c | 49 + ompi/mpi/java/c/mpi_Request.c | 425 + ompi/mpi/java/c/mpi_Status.c | 206 + ompi/mpi/java/c/mpi_Win.c | 498 + ompi/mpi/java/java/CartComm.java | 245 + ompi/mpi/java/java/CartParms.java | 116 + ompi/mpi/java/java/Comm.java | 3409 +++++++ ompi/mpi/java/java/Constant.java | 121 + ompi/mpi/java/java/Count.java | 96 + ompi/mpi/java/java/Datatype.java | 579 ++ ompi/mpi/java/java/DistGraphNeighbors.java | 109 + ompi/mpi/java/java/DoubleComplex.java | 150 + ompi/mpi/java/java/DoubleInt.java | 115 + ompi/mpi/java/java/Errhandler.java | 65 + ompi/mpi/java/java/File.java | 1249 +++ ompi/mpi/java/java/FileView.java | 83 + ompi/mpi/java/java/FloatComplex.java | 150 + ompi/mpi/java/java/FloatInt.java | 115 + ompi/mpi/java/java/Freeable.java | 59 + ompi/mpi/java/java/GraphComm.java | 196 + ompi/mpi/java/java/GraphParms.java | 117 + ompi/mpi/java/java/Group.java | 274 + ompi/mpi/java/java/Info.java | 179 + ompi/mpi/java/java/Int2.java | 127 + ompi/mpi/java/java/Intercomm.java | 181 + ompi/mpi/java/java/Intracomm.java | 885 ++ ompi/mpi/java/java/LongInt.java | 134 + ompi/mpi/java/java/MPI.java | 1001 ++ ompi/mpi/java/java/MPIException.java | 103 + ompi/mpi/java/java/Makefile.am | 209 + ompi/mpi/java/java/Message.java | 163 + ompi/mpi/java/java/Op.java | 133 + ompi/mpi/java/java/Prequest.java | 96 + ompi/mpi/java/java/Request.java | 520 + ompi/mpi/java/java/ShiftParms.java | 82 + ompi/mpi/java/java/ShortInt.java | 137 + ompi/mpi/java/java/Status.java | 277 + ompi/mpi/java/java/Struct.java | 802 ++ ompi/mpi/java/java/UserFunction.java | 211 + ompi/mpi/java/java/Version.java | 68 + ompi/mpi/java/java/Win.java | 907 ++ ompi/mpi/man/make_manpage.pl | 82 + ompi/mpi/man/man3/MPI.3in | 194 + ompi/mpi/man/man3/MPI_Abort.3in | 75 + ompi/mpi/man/man3/MPI_Accumulate.3in | 173 + ompi/mpi/man/man3/MPI_Add_error_class.3in | 99 + ompi/mpi/man/man3/MPI_Add_error_code.3in | 92 + ompi/mpi/man/man3/MPI_Add_error_string.3in | 96 + ompi/mpi/man/man3/MPI_Address.3in | 93 + ompi/mpi/man/man3/MPI_Aint_add.3in | 94 + ompi/mpi/man/man3/MPI_Aint_diff.3in | 1 + ompi/mpi/man/man3/MPI_Allgather.3in | 177 + ompi/mpi/man/man3/MPI_Allgatherv.3in | 163 + ompi/mpi/man/man3/MPI_Alloc_mem.3in | 113 + ompi/mpi/man/man3/MPI_Allreduce.3in | 183 + ompi/mpi/man/man3/MPI_Alltoall.3in | 179 + ompi/mpi/man/man3/MPI_Alltoallv.3in | 213 + ompi/mpi/man/man3/MPI_Alltoallw.3in | 216 + ompi/mpi/man/man3/MPI_Attr_delete.3in | 69 + ompi/mpi/man/man3/MPI_Attr_get.3in | 70 + ompi/mpi/man/man3/MPI_Attr_put.3in | 72 + ompi/mpi/man/man3/MPI_Barrier.3in | 82 + ompi/mpi/man/man3/MPI_Bcast.3in | 120 + ompi/mpi/man/man3/MPI_Bsend.3in | 123 + ompi/mpi/man/man3/MPI_Bsend_init.3in | 102 + ompi/mpi/man/man3/MPI_Buffer_attach.3in | 92 + ompi/mpi/man/man3/MPI_Buffer_detach.3in | 110 + ompi/mpi/man/man3/MPI_Cancel.3in | 89 + ompi/mpi/man/man3/MPI_Cart_coords.3in | 75 + ompi/mpi/man/man3/MPI_Cart_create.3in | 87 + ompi/mpi/man/man3/MPI_Cart_get.3in | 86 + ompi/mpi/man/man3/MPI_Cart_map.3in | 88 + ompi/mpi/man/man3/MPI_Cart_rank.3in | 74 + ompi/mpi/man/man3/MPI_Cart_shift.3in | 107 + ompi/mpi/man/man3/MPI_Cart_sub.3in | 87 + ompi/mpi/man/man3/MPI_Cartdim_get.3in | 73 + ompi/mpi/man/man3/MPI_Close_port.3in | 63 + ompi/mpi/man/man3/MPI_Comm_accept.3in | 90 + ompi/mpi/man/man3/MPI_Comm_c2f.3in | 1 + .../mpi/man/man3/MPI_Comm_call_errhandler.3in | 89 + ompi/mpi/man/man3/MPI_Comm_compare.3in | 70 + ompi/mpi/man/man3/MPI_Comm_connect.3in | 95 + ompi/mpi/man/man3/MPI_Comm_create.3in | 97 + .../man/man3/MPI_Comm_create_errhandler.3in | 102 + ompi/mpi/man/man3/MPI_Comm_create_group.3in | 94 + ompi/mpi/man/man3/MPI_Comm_create_keyval.3in | 152 + ompi/mpi/man/man3/MPI_Comm_delete_attr.3in | 81 + ompi/mpi/man/man3/MPI_Comm_disconnect.3in | 78 + ompi/mpi/man/man3/MPI_Comm_dup.3in | 87 + ompi/mpi/man/man3/MPI_Comm_dup_with_info.3in | 84 + ompi/mpi/man/man3/MPI_Comm_f2c.3in | 48 + ompi/mpi/man/man3/MPI_Comm_free.3in | 74 + ompi/mpi/man/man3/MPI_Comm_free_keyval.3in | 68 + ompi/mpi/man/man3/MPI_Comm_get_attr.3in | 92 + ompi/mpi/man/man3/MPI_Comm_get_errhandler.3in | 70 + ompi/mpi/man/man3/MPI_Comm_get_info.3in | 76 + ompi/mpi/man/man3/MPI_Comm_get_name.3in | 79 + ompi/mpi/man/man3/MPI_Comm_get_parent.3in | 74 + ompi/mpi/man/man3/MPI_Comm_group.3in | 66 + ompi/mpi/man/man3/MPI_Comm_idup.3in | 85 + ompi/mpi/man/man3/MPI_Comm_join.3in | 112 + ompi/mpi/man/man3/MPI_Comm_rank.3in | 78 + ompi/mpi/man/man3/MPI_Comm_remote_group.3in | 77 + ompi/mpi/man/man3/MPI_Comm_remote_size.3in | 77 + ompi/mpi/man/man3/MPI_Comm_set_attr.3in | 97 + ompi/mpi/man/man3/MPI_Comm_set_errhandler.3in | 67 + ompi/mpi/man/man3/MPI_Comm_set_info.3in | 78 + ompi/mpi/man/man3/MPI_Comm_set_name.3in | 88 + ompi/mpi/man/man3/MPI_Comm_size.3in | 88 + ompi/mpi/man/man3/MPI_Comm_spawn.3in | 245 + ompi/mpi/man/man3/MPI_Comm_spawn_multiple.3in | 272 + ompi/mpi/man/man3/MPI_Comm_split.3in | 108 + ompi/mpi/man/man3/MPI_Comm_split_type.3in | 165 + ompi/mpi/man/man3/MPI_Comm_test_inter.3in | 92 + ompi/mpi/man/man3/MPI_Compare_and_swap.3in | 112 + ompi/mpi/man/man3/MPI_Dims_create.3in | 91 + ompi/mpi/man/man3/MPI_Dist_graph_create.3in | 137 + .../man3/MPI_Dist_graph_create_adjacent.3in | 132 + .../mpi/man/man3/MPI_Dist_graph_neighbors.3in | 95 + .../man3/MPI_Dist_graph_neighbors_count.3in | 74 + ompi/mpi/man/man3/MPI_Errhandler_create.3in | 80 + ompi/mpi/man/man3/MPI_Errhandler_free.3in | 73 + ompi/mpi/man/man3/MPI_Errhandler_get.3in | 67 + ompi/mpi/man/man3/MPI_Errhandler_set.3in | 63 + ompi/mpi/man/man3/MPI_Error_class.3in | 72 + ompi/mpi/man/man3/MPI_Error_string.3in | 80 + ompi/mpi/man/man3/MPI_Exscan.3in | 175 + ompi/mpi/man/man3/MPI_Fetch_and_op.3in | 124 + ompi/mpi/man/man3/MPI_File_c2f.3in | 1 + .../mpi/man/man3/MPI_File_call_errhandler.3in | 85 + ompi/mpi/man/man3/MPI_File_close.3in | 71 + .../man/man3/MPI_File_create_errhandler.3in | 104 + ompi/mpi/man/man3/MPI_File_delete.3in | 74 + ompi/mpi/man/man3/MPI_File_f2c.3in | 2 + ompi/mpi/man/man3/MPI_File_get_amode.3in | 72 + ompi/mpi/man/man3/MPI_File_get_atomicity.3in | 77 + .../mpi/man/man3/MPI_File_get_byte_offset.3in | 92 + ompi/mpi/man/man3/MPI_File_get_errhandler.3in | 69 + ompi/mpi/man/man3/MPI_File_get_group.3in | 74 + ompi/mpi/man/man3/MPI_File_get_info.3in | 110 + ompi/mpi/man/man3/MPI_File_get_position.3in | 86 + .../man/man3/MPI_File_get_position_shared.3in | 85 + ompi/mpi/man/man3/MPI_File_get_size.3in | 90 + .../mpi/man/man3/MPI_File_get_type_extent.3in | 94 + ompi/mpi/man/man3/MPI_File_get_view.3in | 108 + ompi/mpi/man/man3/MPI_File_iread.3in | 102 + ompi/mpi/man/man3/MPI_File_iread_all.3in | 95 + ompi/mpi/man/man3/MPI_File_iread_at.3in | 129 + ompi/mpi/man/man3/MPI_File_iread_at_all.3in | 122 + ompi/mpi/man/man3/MPI_File_iread_shared.3in | 88 + ompi/mpi/man/man3/MPI_File_iwrite.3in | 107 + ompi/mpi/man/man3/MPI_File_iwrite_all.3in | 100 + ompi/mpi/man/man3/MPI_File_iwrite_at.3in | 131 + ompi/mpi/man/man3/MPI_File_iwrite_at_all.3in | 124 + ompi/mpi/man/man3/MPI_File_iwrite_shared.3in | 90 + ompi/mpi/man/man3/MPI_File_open.3in | 197 + ompi/mpi/man/man3/MPI_File_preallocate.3in | 95 + ompi/mpi/man/man3/MPI_File_read.3in | 103 + ompi/mpi/man/man3/MPI_File_read_all.3in | 104 + ompi/mpi/man/man3/MPI_File_read_all_begin.3in | 96 + ompi/mpi/man/man3/MPI_File_read_all_end.3in | 91 + ompi/mpi/man/man3/MPI_File_read_at.3in | 131 + ompi/mpi/man/man3/MPI_File_read_at_all.3in | 127 + .../man/man3/MPI_File_read_at_all_begin.3in | 120 + .../mpi/man/man3/MPI_File_read_at_all_end.3in | 87 + ompi/mpi/man/man3/MPI_File_read_ordered.3in | 108 + .../man/man3/MPI_File_read_ordered_begin.3in | 103 + .../man/man3/MPI_File_read_ordered_end.3in | 88 + ompi/mpi/man/man3/MPI_File_read_shared.3in | 92 + ompi/mpi/man/man3/MPI_File_seek.3in | 110 + ompi/mpi/man/man3/MPI_File_seek_shared.3in | 120 + ompi/mpi/man/man3/MPI_File_set_atomicity.3in | 84 + ompi/mpi/man/man3/MPI_File_set_errhandler.3in | 70 + ompi/mpi/man/man3/MPI_File_set_info.3in | 110 + ompi/mpi/man/man3/MPI_File_set_size.3in | 95 + ompi/mpi/man/man3/MPI_File_set_view.3in | 185 + ompi/mpi/man/man3/MPI_File_sync.3in | 75 + ompi/mpi/man/man3/MPI_File_write.3in | 110 + ompi/mpi/man/man3/MPI_File_write_all.3in | 106 + .../mpi/man/man3/MPI_File_write_all_begin.3in | 101 + ompi/mpi/man/man3/MPI_File_write_all_end.3in | 92 + ompi/mpi/man/man3/MPI_File_write_at.3in | 140 + ompi/mpi/man/man3/MPI_File_write_at_all.3in | 128 + .../man/man3/MPI_File_write_at_all_begin.3in | 121 + .../man/man3/MPI_File_write_at_all_end.3in | 92 + ompi/mpi/man/man3/MPI_File_write_ordered.3in | 114 + .../man/man3/MPI_File_write_ordered_begin.3in | 110 + .../man/man3/MPI_File_write_ordered_end.3in | 91 + ompi/mpi/man/man3/MPI_File_write_shared.3in | 92 + ompi/mpi/man/man3/MPI_Finalize.3in | 72 + ompi/mpi/man/man3/MPI_Finalized.3in | 70 + ompi/mpi/man/man3/MPI_Free_mem.3in | 66 + ompi/mpi/man/man3/MPI_Gather.3in | 213 + ompi/mpi/man/man3/MPI_Gatherv.3in | 375 + ompi/mpi/man/man3/MPI_Get.3in | 144 + ompi/mpi/man/man3/MPI_Get_accumulate.3in | 191 + ompi/mpi/man/man3/MPI_Get_address.3in | 91 + ompi/mpi/man/man3/MPI_Get_count.3in | 100 + ompi/mpi/man/man3/MPI_Get_elements.3in | 122 + ompi/mpi/man/man3/MPI_Get_elements_x.3in | 1 + ompi/mpi/man/man3/MPI_Get_library_version.3in | 95 + ompi/mpi/man/man3/MPI_Get_processor_name.3in | 74 + ompi/mpi/man/man3/MPI_Get_version.3in | 70 + ompi/mpi/man/man3/MPI_Graph_create.3in | 126 + ompi/mpi/man/man3/MPI_Graph_get.3in | 89 + ompi/mpi/man/man3/MPI_Graph_map.3in | 84 + ompi/mpi/man/man3/MPI_Graph_neighbors.3in | 112 + .../man/man3/MPI_Graph_neighbors_count.3in | 76 + ompi/mpi/man/man3/MPI_Graphdims_get.3in | 78 + ompi/mpi/man/man3/MPI_Grequest_complete.3in | 64 + ompi/mpi/man/man3/MPI_Grequest_start.3in | 184 + ompi/mpi/man/man3/MPI_Group_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Group_compare.3in | 69 + ompi/mpi/man/man3/MPI_Group_difference.3in | 88 + ompi/mpi/man/man3/MPI_Group_excl.3in | 86 + ompi/mpi/man/man3/MPI_Group_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Group_free.3in | 64 + ompi/mpi/man/man3/MPI_Group_incl.3in | 89 + ompi/mpi/man/man3/MPI_Group_intersection.3in | 90 + ompi/mpi/man/man3/MPI_Group_range_excl.3in | 85 + ompi/mpi/man/man3/MPI_Group_range_incl.3in | 106 + ompi/mpi/man/man3/MPI_Group_rank.3in | 66 + ompi/mpi/man/man3/MPI_Group_size.3in | 66 + .../man/man3/MPI_Group_translate_ranks.3in | 80 + ompi/mpi/man/man3/MPI_Group_union.3in | 90 + ompi/mpi/man/man3/MPI_Iallgather.3in | 1 + ompi/mpi/man/man3/MPI_Iallgatherv.3in | 1 + ompi/mpi/man/man3/MPI_Iallreduce.3in | 1 + ompi/mpi/man/man3/MPI_Ialltoall.3in | 1 + ompi/mpi/man/man3/MPI_Ialltoallv.3in | 1 + ompi/mpi/man/man3/MPI_Ialltoallw.3in | 1 + ompi/mpi/man/man3/MPI_Ibarrier.3in | 1 + ompi/mpi/man/man3/MPI_Ibcast.3in | 1 + ompi/mpi/man/man3/MPI_Ibsend.3in | 96 + ompi/mpi/man/man3/MPI_Iexscan.3in | 1 + ompi/mpi/man/man3/MPI_Igather.3in | 1 + ompi/mpi/man/man3/MPI_Igatherv.3in | 1 + ompi/mpi/man/man3/MPI_Improbe.3in | 122 + ompi/mpi/man/man3/MPI_Imrecv.3in | 121 + ompi/mpi/man/man3/MPI_Ineighbor_allgather.3in | 1 + .../mpi/man/man3/MPI_Ineighbor_allgatherv.3in | 1 + ompi/mpi/man/man3/MPI_Ineighbor_alltoall.3in | 1 + ompi/mpi/man/man3/MPI_Ineighbor_alltoallv.3in | 1 + ompi/mpi/man/man3/MPI_Ineighbor_alltoallw.3in | 1 + ompi/mpi/man/man3/MPI_Info_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Info_create.3in | 72 + ompi/mpi/man/man3/MPI_Info_delete.3in | 83 + ompi/mpi/man/man3/MPI_Info_dup.3in | 79 + ompi/mpi/man/man3/MPI_Info_env.3in | 66 + ompi/mpi/man/man3/MPI_Info_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Info_free.3in | 74 + ompi/mpi/man/man3/MPI_Info_get.3in | 106 + ompi/mpi/man/man3/MPI_Info_get_nkeys.3in | 75 + ompi/mpi/man/man3/MPI_Info_get_nthkey.3in | 81 + ompi/mpi/man/man3/MPI_Info_get_valuelen.3in | 92 + ompi/mpi/man/man3/MPI_Info_set.3in | 86 + ompi/mpi/man/man3/MPI_Init.3in | 113 + ompi/mpi/man/man3/MPI_Init_thread.3in | 207 + ompi/mpi/man/man3/MPI_Initialized.3in | 70 + ompi/mpi/man/man3/MPI_Intercomm_create.3in | 118 + ompi/mpi/man/man3/MPI_Intercomm_merge.3in | 80 + ompi/mpi/man/man3/MPI_Iprobe.3in | 103 + ompi/mpi/man/man3/MPI_Irecv.3in | 101 + ompi/mpi/man/man3/MPI_Ireduce.3in | 1 + ompi/mpi/man/man3/MPI_Ireduce_scatter.3in | 1 + .../man/man3/MPI_Ireduce_scatter_block.3in | 1 + ompi/mpi/man/man3/MPI_Irsend.3in | 92 + ompi/mpi/man/man3/MPI_Is_thread_main.3in | 79 + ompi/mpi/man/man3/MPI_Iscan.3in | 1 + ompi/mpi/man/man3/MPI_Iscatter.3in | 1 + ompi/mpi/man/man3/MPI_Iscatterv.3in | 1 + ompi/mpi/man/man3/MPI_Isend.3in | 100 + ompi/mpi/man/man3/MPI_Issend.3in | 95 + ompi/mpi/man/man3/MPI_Keyval_create.3in | 121 + ompi/mpi/man/man3/MPI_Keyval_free.3in | 64 + ompi/mpi/man/man3/MPI_Lookup_name.3in | 142 + ompi/mpi/man/man3/MPI_Message_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Message_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Mprobe.3in | 115 + ompi/mpi/man/man3/MPI_Mrecv.3in | 104 + ompi/mpi/man/man3/MPI_Neighbor_allgather.3in | 148 + ompi/mpi/man/man3/MPI_Neighbor_allgatherv.3in | 145 + ompi/mpi/man/man3/MPI_Neighbor_alltoall.3in | 193 + ompi/mpi/man/man3/MPI_Neighbor_alltoallv.3in | 220 + ompi/mpi/man/man3/MPI_Neighbor_alltoallw.3in | 215 + ompi/mpi/man/man3/MPI_Op_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Op_commutative.3in | 68 + ompi/mpi/man/man3/MPI_Op_create.3in | 195 + ompi/mpi/man/man3/MPI_Op_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Op_free.3in | 72 + ompi/mpi/man/man3/MPI_Open_port.3in | 76 + ompi/mpi/man/man3/MPI_Pack.3in | 125 + ompi/mpi/man/man3/MPI_Pack_external.3in | 216 + ompi/mpi/man/man3/MPI_Pack_external_size.3in | 114 + ompi/mpi/man/man3/MPI_Pack_size.3in | 86 + ompi/mpi/man/man3/MPI_Pcontrol.3in | 76 + ompi/mpi/man/man3/MPI_Probe.3in | 136 + ompi/mpi/man/man3/MPI_Publish_name.3in | 176 + ompi/mpi/man/man3/MPI_Put.3in | 163 + ompi/mpi/man/man3/MPI_Query_thread.3in | 103 + ompi/mpi/man/man3/MPI_Raccumulate.3in | 1 + ompi/mpi/man/man3/MPI_Recv.3in | 125 + ompi/mpi/man/man3/MPI_Recv_init.3in | 111 + ompi/mpi/man/man3/MPI_Reduce.3in | 479 + ompi/mpi/man/man3/MPI_Reduce_local.3in | 293 + ompi/mpi/man/man3/MPI_Reduce_scatter.3in | 143 + .../mpi/man/man3/MPI_Reduce_scatter_block.3in | 137 + ompi/mpi/man/man3/MPI_Register_datarep.3in | 111 + ompi/mpi/man/man3/MPI_Request_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Request_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Request_free.3in | 143 + ompi/mpi/man/man3/MPI_Request_get_status.3in | 72 + ompi/mpi/man/man3/MPI_Rget.3in | 1 + ompi/mpi/man/man3/MPI_Rget_accumulate.3in | 1 + ompi/mpi/man/man3/MPI_Rput.3in | 1 + ompi/mpi/man/man3/MPI_Rsend.3in | 85 + ompi/mpi/man/man3/MPI_Rsend_init.3in | 108 + ompi/mpi/man/man3/MPI_Scan.3in | 243 + ompi/mpi/man/man3/MPI_Scatter.3in | 194 + ompi/mpi/man/man3/MPI_Scatterv.3in | 239 + ompi/mpi/man/man3/MPI_Send.3in | 94 + ompi/mpi/man/man3/MPI_Send_init.3in | 110 + ompi/mpi/man/man3/MPI_Sendrecv.3in | 131 + ompi/mpi/man/man3/MPI_Sendrecv_replace.3in | 118 + ompi/mpi/man/man3/MPI_Sizeof.3in | 75 + ompi/mpi/man/man3/MPI_Ssend.3in | 83 + ompi/mpi/man/man3/MPI_Ssend_init.3in | 109 + ompi/mpi/man/man3/MPI_Start.3in | 83 + ompi/mpi/man/man3/MPI_Startall.3in | 100 + ompi/mpi/man/man3/MPI_Status_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Status_f2c.3in | 30 + .../mpi/man/man3/MPI_Status_set_cancelled.3in | 73 + ompi/mpi/man/man3/MPI_Status_set_elements.3in | 97 + .../man/man3/MPI_Status_set_elements_x.3in | 1 + ompi/mpi/man/man3/MPI_T_category_changed.3in | 38 + .../man3/MPI_T_category_get_categories.3in | 49 + .../mpi/man/man3/MPI_T_category_get_cvars.3in | 49 + ompi/mpi/man/man3/MPI_T_category_get_info.3in | 81 + ompi/mpi/man/man3/MPI_T_category_get_num.3in | 36 + .../mpi/man/man3/MPI_T_category_get_pvars.3in | 50 + ompi/mpi/man/man3/MPI_T_cvar_get_info.3in | 170 + ompi/mpi/man/man3/MPI_T_cvar_get_num.3in | 39 + ompi/mpi/man/man3/MPI_T_cvar_handle_alloc.3in | 68 + ompi/mpi/man/man3/MPI_T_cvar_handle_free.3in | 1 + ompi/mpi/man/man3/MPI_T_cvar_read.3in | 51 + ompi/mpi/man/man3/MPI_T_cvar_write.3in | 59 + ompi/mpi/man/man3/MPI_T_enum_get_info.3in | 66 + ompi/mpi/man/man3/MPI_T_enum_get_item.3in | 69 + ompi/mpi/man/man3/MPI_T_finalize.3in | 44 + ompi/mpi/man/man3/MPI_T_init_thread.3in | 90 + ompi/mpi/man/man3/MPI_T_pvar_get_info.3in | 204 + ompi/mpi/man/man3/MPI_T_pvar_get_num.3in | 38 + ompi/mpi/man/man3/MPI_T_pvar_handle_alloc.3in | 60 + ompi/mpi/man/man3/MPI_T_pvar_handle_free.3in | 1 + ompi/mpi/man/man3/MPI_T_pvar_read.3in | 59 + ompi/mpi/man/man3/MPI_T_pvar_readreset.3in | 69 + ompi/mpi/man/man3/MPI_T_pvar_reset.3in | 60 + .../man/man3/MPI_T_pvar_session_create.3in | 50 + ompi/mpi/man/man3/MPI_T_pvar_session_free.3in | 1 + ompi/mpi/man/man3/MPI_T_pvar_start.3in | 62 + ompi/mpi/man/man3/MPI_T_pvar_stop.3in | 1 + ompi/mpi/man/man3/MPI_T_pvar_write.3in | 62 + ompi/mpi/man/man3/MPI_Test.3in | 123 + ompi/mpi/man/man3/MPI_Test_cancelled.3in | 74 + ompi/mpi/man/man3/MPI_Testall.3in | 135 + ompi/mpi/man/man3/MPI_Testany.3in | 130 + ompi/mpi/man/man3/MPI_Testsome.3in | 157 + ompi/mpi/man/man3/MPI_Topo_test.3in | 82 + ompi/mpi/man/man3/MPI_Type_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Type_commit.3in | 73 + ompi/mpi/man/man3/MPI_Type_contiguous.3in | 99 + ompi/mpi/man/man3/MPI_Type_create_darray.3in | 158 + .../man/man3/MPI_Type_create_f90_complex.3in | 148 + .../man/man3/MPI_Type_create_f90_integer.3in | 141 + .../mpi/man/man3/MPI_Type_create_f90_real.3in | 147 + .../mpi/man/man3/MPI_Type_create_hindexed.3in | 1 + .../man3/MPI_Type_create_hindexed_block.3in | 1 + ompi/mpi/man/man3/MPI_Type_create_hvector.3in | 102 + .../man3/MPI_Type_create_indexed_block.3in | 105 + ompi/mpi/man/man3/MPI_Type_create_keyval.3in | 148 + ompi/mpi/man/man3/MPI_Type_create_resized.3in | 98 + ompi/mpi/man/man3/MPI_Type_create_struct.3in | 108 + .../mpi/man/man3/MPI_Type_create_subarray.3in | 144 + ompi/mpi/man/man3/MPI_Type_delete_attr.3in | 77 + ompi/mpi/man/man3/MPI_Type_dup.3in | 80 + ompi/mpi/man/man3/MPI_Type_extent.3in | 93 + ompi/mpi/man/man3/MPI_Type_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Type_free.3in | 65 + ompi/mpi/man/man3/MPI_Type_free_keyval.3in | 66 + ompi/mpi/man/man3/MPI_Type_get_attr.3in | 92 + ompi/mpi/man/man3/MPI_Type_get_contents.3in | 124 + ompi/mpi/man/man3/MPI_Type_get_envelope.3in | 123 + ompi/mpi/man/man3/MPI_Type_get_extent.3in | 110 + ompi/mpi/man/man3/MPI_Type_get_extent_x.3in | 1 + ompi/mpi/man/man3/MPI_Type_get_name.3in | 78 + .../mpi/man/man3/MPI_Type_get_true_extent.3in | 109 + .../man/man3/MPI_Type_get_true_extent_x.3in | 1 + ompi/mpi/man/man3/MPI_Type_hindexed.3in | 100 + ompi/mpi/man/man3/MPI_Type_hvector.3in | 98 + ompi/mpi/man/man3/MPI_Type_indexed.3in | 170 + ompi/mpi/man/man3/MPI_Type_lb.3in | 92 + ompi/mpi/man/man3/MPI_Type_match_size.3in | 105 + ompi/mpi/man/man3/MPI_Type_set_attr.3in | 92 + ompi/mpi/man/man3/MPI_Type_set_name.3in | 77 + ompi/mpi/man/man3/MPI_Type_size.3in | 88 + ompi/mpi/man/man3/MPI_Type_size_x.3in | 1 + ompi/mpi/man/man3/MPI_Type_struct.3in | 118 + ompi/mpi/man/man3/MPI_Type_ub.3in | 95 + ompi/mpi/man/man3/MPI_Type_vector.3in | 132 + ompi/mpi/man/man3/MPI_Unpack.3in | 118 + ompi/mpi/man/man3/MPI_Unpack_external.3in | 193 + ompi/mpi/man/man3/MPI_Unpublish_name.3in | 140 + ompi/mpi/man/man3/MPI_Wait.3in | 129 + ompi/mpi/man/man3/MPI_Waitall.3in | 124 + ompi/mpi/man/man3/MPI_Waitany.3in | 150 + ompi/mpi/man/man3/MPI_Waitsome.3in | 168 + ompi/mpi/man/man3/MPI_Win_allocate.3in | 121 + ompi/mpi/man/man3/MPI_Win_allocate_shared.3in | 146 + ompi/mpi/man/man3/MPI_Win_attach.3in | 81 + ompi/mpi/man/man3/MPI_Win_c2f.3in | 1 + ompi/mpi/man/man3/MPI_Win_call_errhandler.3in | 89 + ompi/mpi/man/man3/MPI_Win_complete.3in | 65 + ompi/mpi/man/man3/MPI_Win_create.3in | 160 + ompi/mpi/man/man3/MPI_Win_create_dynamic.3in | 92 + .../man/man3/MPI_Win_create_errhandler.3in | 95 + ompi/mpi/man/man3/MPI_Win_create_keyval.3in | 146 + ompi/mpi/man/man3/MPI_Win_delete_attr.3in | 71 + ompi/mpi/man/man3/MPI_Win_detach.3in | 1 + ompi/mpi/man/man3/MPI_Win_f2c.3in | 1 + ompi/mpi/man/man3/MPI_Win_fence.3in | 82 + ompi/mpi/man/man3/MPI_Win_flush.3in | 76 + ompi/mpi/man/man3/MPI_Win_flush_all.3in | 1 + ompi/mpi/man/man3/MPI_Win_flush_local.3in | 76 + ompi/mpi/man/man3/MPI_Win_flush_local_all.3in | 1 + ompi/mpi/man/man3/MPI_Win_free.3in | 67 + ompi/mpi/man/man3/MPI_Win_free_keyval.3in | 57 + ompi/mpi/man/man3/MPI_Win_get_attr.3in | 88 + ompi/mpi/man/man3/MPI_Win_get_errhandler.3in | 66 + ompi/mpi/man/man3/MPI_Win_get_group.3in | 65 + ompi/mpi/man/man3/MPI_Win_get_info.3in | 75 + ompi/mpi/man/man3/MPI_Win_get_name.3in | 70 + ompi/mpi/man/man3/MPI_Win_lock.3in | 92 + ompi/mpi/man/man3/MPI_Win_lock_all.3in | 79 + ompi/mpi/man/man3/MPI_Win_post.3in | 77 + ompi/mpi/man/man3/MPI_Win_set_attr.3in | 85 + ompi/mpi/man/man3/MPI_Win_set_errhandler.3in | 69 + ompi/mpi/man/man3/MPI_Win_set_info.3in | 77 + ompi/mpi/man/man3/MPI_Win_set_name.3in | 70 + ompi/mpi/man/man3/MPI_Win_shared_query.3in | 101 + ompi/mpi/man/man3/MPI_Win_start.3in | 85 + ompi/mpi/man/man3/MPI_Win_sync.3in | 55 + ompi/mpi/man/man3/MPI_Win_test.3in | 78 + ompi/mpi/man/man3/MPI_Win_unlock.3in | 74 + ompi/mpi/man/man3/MPI_Win_unlock_all.3in | 62 + ompi/mpi/man/man3/MPI_Win_wait.3in | 71 + ompi/mpi/man/man3/MPI_Wtick.3in | 59 + ompi/mpi/man/man3/MPI_Wtime.3in | 93 + ompi/mpi/man/man3/Makefile.extra | 433 + ompi/mpi/man/man3/OpenMPI.3in | 1 + ompi/mpi/tool/Makefile.am | 48 + ompi/mpi/tool/category_changed.c | 35 + ompi/mpi/tool/category_get_categories.c | 55 + ompi/mpi/tool/category_get_cvars.c | 55 + ompi/mpi/tool/category_get_index.c | 44 + ompi/mpi/tool/category_get_info.c | 63 + ompi/mpi/tool/category_get_num.c | 39 + ompi/mpi/tool/category_get_pvars.c | 55 + ompi/mpi/tool/cvar_get_index.c | 44 + ompi/mpi/tool/cvar_get_info.c | 75 + ompi/mpi/tool/cvar_get_num.c | 38 + ompi/mpi/tool/cvar_handle_alloc.c | 74 + ompi/mpi/tool/cvar_handle_free.c | 34 + ompi/mpi/tool/cvar_read.c | 83 + ompi/mpi/tool/cvar_write.c | 59 + ompi/mpi/tool/enum_get_info.c | 49 + ompi/mpi/tool/enum_get_item.c | 60 + ompi/mpi/tool/finalize.c | 55 + ompi/mpi/tool/init_thread.c | 66 + ompi/mpi/tool/mpit-internal.h | 73 + ompi/mpi/tool/mpit_common.c | 96 + ompi/mpi/tool/profile/Makefile.am | 106 + ompi/mpi/tool/profile/defines.h | 63 + ompi/mpi/tool/pvar_get_index.c | 44 + ompi/mpi/tool/pvar_get_info.c | 94 + ompi/mpi/tool/pvar_get_num.c | 36 + ompi/mpi/tool/pvar_handle_alloc.c | 58 + ompi/mpi/tool/pvar_handle_free.c | 55 + ompi/mpi/tool/pvar_read.c | 44 + ompi/mpi/tool/pvar_readreset.c | 33 + ompi/mpi/tool/pvar_reset.c | 50 + ompi/mpi/tool/pvar_session_create.c | 42 + ompi/mpi/tool/pvar_session_free.c | 36 + ompi/mpi/tool/pvar_start.c | 59 + ompi/mpi/tool/pvar_stop.c | 61 + ompi/mpi/tool/pvar_write.c | 44 + ompi/mpiext/Makefile.am | 20 + ompi/mpiext/README.txt | 124 + ompi/mpiext/affinity/Makefile.am | 23 + ompi/mpiext/affinity/README.txt | 29 + ompi/mpiext/affinity/c/Makefile.am | 53 + ompi/mpiext/affinity/c/OMPI_Affinity_str.3in | 202 + ompi/mpiext/affinity/c/example.c | 32 + ompi/mpiext/affinity/c/mpiext_affinity_c.h | 24 + ompi/mpiext/affinity/c/mpiext_affinity_str.c | 420 + ompi/mpiext/affinity/configure.m4 | 25 + ompi/mpiext/cr/Makefile.am | 21 + ompi/mpiext/cr/c/Makefile.am | 45 + ompi/mpiext/cr/c/checkpoint.c | 89 + ompi/mpiext/cr/c/inc_register_callback.c | 40 + ompi/mpiext/cr/c/migrate.c | 121 + ompi/mpiext/cr/c/mpiext_cr_c.h | 83 + ompi/mpiext/cr/c/quiesce_checkpoint.c | 70 + ompi/mpiext/cr/c/quiesce_end.c | 75 + ompi/mpiext/cr/c/quiesce_start.c | 214 + ompi/mpiext/cr/c/restart.c | 67 + ompi/mpiext/cr/c/self_register_checkpoint.c | 40 + ompi/mpiext/cr/c/self_register_continue.c | 40 + ompi/mpiext/cr/c/self_register_restart.c | 40 + ompi/mpiext/cr/configure.m4 | 40 + ompi/mpiext/cuda/Makefile.am | 24 + ompi/mpiext/cuda/README.txt | 11 + .../mpiext/cuda/c/MPIX_Query_cuda_support.3in | 34 + ompi/mpiext/cuda/c/Makefile.am | 48 + ompi/mpiext/cuda/c/mpiext_cuda.c | 31 + ompi/mpiext/cuda/c/mpiext_cuda_c.h.in | 16 + ompi/mpiext/cuda/configure.m4 | 31 + ompi/mpiext/example/.opal_ignore | 0 ompi/mpiext/example/Makefile.am | 20 + ompi/mpiext/example/README.txt | 138 + ompi/mpiext/example/c/Makefile.am | 38 + ompi/mpiext/example/c/mpiext_example_c.h | 21 + ompi/mpiext/example/c/mpiext_example_module.c | 56 + .../example/c/mpiext_example_progress.c | 55 + ompi/mpiext/example/c/progress.c | 54 + ompi/mpiext/example/configure.m4 | 34 + ompi/mpiext/example/mpif-h/Makefile.am | 51 + .../example/mpif-h/mpiext_example_mpifh.h | 16 + .../mpif-h/mpiext_example_progress_f.c | 67 + ompi/mpiext/example/tests/Makefile | 56 + ompi/mpiext/example/tests/Makefile.include | 34 + ompi/mpiext/example/tests/progress_c.c | 25 + ompi/mpiext/example/tests/progress_mpifh.F90 | 24 + ompi/mpiext/example/tests/progress_usempi.F90 | 24 + .../example/tests/progress_usempif08.F90 | 24 + ompi/mpiext/example/use-mpi-f08/Makefile.am | 41 + .../mpiext_example_progress_f08.F90 | 51 + .../use-mpi-f08/mpiext_example_usempif08.h | 28 + ompi/mpiext/example/use-mpi/Makefile.am | 15 + .../example/use-mpi/mpiext_example_usempi.h | 27 + ompi/mpiext/mpiext.c | 43 + ompi/mpiext/mpiext.h | 24 + ompi/op/Makefile.am | 27 + ompi/op/op.c | 498 + ompi/op/op.h | 652 ++ ompi/patterns/comm/Makefile.am | 17 + ompi/patterns/comm/allgather.c | 293 + ompi/patterns/comm/allreduce.c | 260 + ompi/patterns/comm/bcast.c | 103 + ompi/patterns/comm/coll_ops.h | 51 + ompi/patterns/comm/commpatterns.h | 22 + ompi/patterns/net/Makefile.am | 19 + ompi/patterns/net/allreduce.c | 347 + ompi/patterns/net/coll_ops.h | 29 + ompi/patterns/net/netpatterns.h | 152 + ompi/patterns/net/netpatterns_base.c | 55 + ompi/patterns/net/netpatterns_knomial_tree.c | 976 ++ ompi/patterns/net/netpatterns_knomial_tree.h | 261 + .../net/netpatterns_multinomial_tree.c | 190 + ompi/patterns/net/netpatterns_nary_tree.c | 457 + ompi/peruse/Makefile.am | 27 + ompi/peruse/peruse-internal.h | 136 + ompi/peruse/peruse.c | 347 + ompi/peruse/peruse.h | 157 + ompi/peruse/peruse_module.c | 85 + ompi/proc/Makefile.am | 27 + ompi/proc/proc.c | 827 ++ ompi/proc/proc.h | 450 + ompi/request/Makefile.am | 33 + ompi/request/grequest.c | 227 + ompi/request/grequest.h | 109 + ompi/request/req_test.c | 377 + ompi/request/req_wait.c | 512 + ompi/request/request.c | 193 + ompi/request/request.h | 446 + ompi/request/request_dbg.h | 49 + ompi/request/request_default.h | 71 + ompi/runtime/Makefile.am | 40 + ompi/runtime/help-mpi-runtime.txt | 95 + ompi/runtime/mpiruntime.h | 230 + ompi/runtime/ompi_cr.c | 508 + ompi/runtime/ompi_cr.h | 65 + ompi/runtime/ompi_info_support.c | 154 + ompi/runtime/ompi_info_support.h | 36 + ompi/runtime/ompi_mpi_abort.c | 209 + ompi/runtime/ompi_mpi_dynamics.c | 64 + ompi/runtime/ompi_mpi_finalize.c | 507 + ompi/runtime/ompi_mpi_init.c | 983 ++ ompi/runtime/ompi_mpi_params.c | 407 + ompi/runtime/ompi_mpi_preconnect.c | 78 + ompi/runtime/params.h | 166 + ompi/tools/Makefile.am | 31 + ompi/tools/mpisync/Makefile.am | 85 + ompi/tools/mpisync/hpctimer.c | 361 + ompi/tools/mpisync/hpctimer.h | 65 + ompi/tools/mpisync/mpigclock.c | 168 + ompi/tools/mpisync/mpigclock.h | 57 + ompi/tools/mpisync/mpirun_prof | 79 + ompi/tools/mpisync/mpisync.1in | 48 + ompi/tools/mpisync/ompi_timing_post | 58 + ompi/tools/mpisync/sync.c | 163 + ompi/tools/ompi_info/Makefile.am | 75 + ompi/tools/ompi_info/ompi_info.1in | 287 + ompi/tools/ompi_info/ompi_info.c | 211 + ompi/tools/ompi_info/ompi_info.h | 44 + ompi/tools/ompi_info/param.c | 665 ++ ompi/tools/wrappers/Makefile.am | 195 + .../tools/wrappers/mpic++-wrapper-data.txt.in | 29 + ompi/tools/wrappers/mpicc-wrapper-data.txt.in | 29 + ompi/tools/wrappers/mpif77.1in | 48 + .../wrappers/mpifort-wrapper-data.txt.in | 28 + ompi/tools/wrappers/mpijavac.1 | 146 + ompi/tools/wrappers/mpijavac.pl.in | 145 + ompi/tools/wrappers/ompi-c.pc.in | 22 + ompi/tools/wrappers/ompi-cxx.pc.in | 22 + ompi/tools/wrappers/ompi-fort.pc.in | 21 + ompi/tools/wrappers/ompi.pc.in | 22 + ompi/tools/wrappers/ompi_wrapper_script.in | 240 + ompi/win/Makefile.am | 27 + ompi/win/win.c | 440 + ompi/win/win.h | 178 + opal/Makefile.am | 80 + opal/asm/Makefile.am | 91 + opal/asm/asm-data.txt | 131 + opal/asm/asm.c | 74 + opal/asm/base/AMD64.asm | 52 + opal/asm/base/ARM.asm | 153 + opal/asm/base/IA32.asm | 110 + opal/asm/base/IA64.asm | 109 + opal/asm/base/MIPS.asm | 196 + opal/asm/base/POWERPC32.asm | 168 + opal/asm/base/POWERPC64.asm | 157 + opal/asm/base/SPARCV9_32.asm | 171 + opal/asm/base/SPARCV9_64.asm | 111 + opal/asm/base/aix.conf | 44 + opal/asm/base/default.conf | 34 + opal/asm/generate-all-asm.pl | 27 + opal/asm/generate-asm.pl | 122 + opal/class/Makefile.am | 57 + opal/class/opal_bitmap.c | 412 + opal/class/opal_bitmap.h | 258 + opal/class/opal_fifo.c | 41 + opal/class/opal_fifo.h | 340 + opal/class/opal_free_list.c | 311 + opal/class/opal_free_list.h | 367 + opal/class/opal_graph.c | 871 ++ opal/class/opal_graph.h | 355 + opal/class/opal_hash_table.c | 993 ++ opal/class/opal_hash_table.h | 491 + opal/class/opal_hotel.c | 140 + opal/class/opal_hotel.h | 351 + opal/class/opal_lifo.c | 33 + opal/class/opal_lifo.h | 320 + opal/class/opal_list.c | 258 + opal/class/opal_list.h | 915 ++ opal/class/opal_object.c | 222 + opal/class/opal_object.h | 518 + opal/class/opal_pointer_array.c | 345 + opal/class/opal_pointer_array.h | 206 + opal/class/opal_rb_tree.c | 573 ++ opal/class/opal_rb_tree.h | 205 + opal/class/opal_ring_buffer.c | 165 + opal/class/opal_ring_buffer.h | 105 + opal/class/opal_tree.c | 707 ++ opal/class/opal_tree.h | 530 + opal/class/opal_value_array.c | 66 + opal/class/opal_value_array.h | 280 + opal/common_sym_whitelist.txt | 7 + opal/datatype/Makefile.am | 80 + opal/datatype/opal_convertor.c | 725 ++ opal/datatype/opal_convertor.h | 374 + opal/datatype/opal_convertor_internal.h | 58 + opal/datatype/opal_convertor_raw.c | 213 + opal/datatype/opal_copy_functions.c | 271 + .../opal_copy_functions_heterogeneous.c | 392 + opal/datatype/opal_datatype.h | 364 + opal/datatype/opal_datatype_add.c | 362 + opal/datatype/opal_datatype_checksum.h | 55 + opal/datatype/opal_datatype_clone.c | 69 + opal/datatype/opal_datatype_copy.c | 141 + opal/datatype/opal_datatype_copy.h | 255 + opal/datatype/opal_datatype_create.c | 112 + .../opal_datatype_create_contiguous.c | 41 + opal/datatype/opal_datatype_cuda.c | 193 + opal/datatype/opal_datatype_cuda.h | 32 + opal/datatype/opal_datatype_destroy.c | 37 + opal/datatype/opal_datatype_dump.c | 148 + opal/datatype/opal_datatype_fake_stack.c | 198 + opal/datatype/opal_datatype_get_count.c | 145 + opal/datatype/opal_datatype_internal.h | 490 + opal/datatype/opal_datatype_memcpy.h | 20 + opal/datatype/opal_datatype_module.c | 266 + opal/datatype/opal_datatype_optimize.c | 307 + opal/datatype/opal_datatype_pack.c | 587 ++ opal/datatype/opal_datatype_pack.h | 115 + opal/datatype/opal_datatype_position.c | 261 + opal/datatype/opal_datatype_prototypes.h | 89 + opal/datatype/opal_datatype_resize.c | 32 + opal/datatype/opal_datatype_unpack.c | 583 ++ opal/datatype/opal_datatype_unpack.h | 109 + opal/dss/Makefile.am | 41 + opal/dss/dss.h | 503 + opal/dss/dss_compare.c | 460 + opal/dss/dss_copy.c | 411 + opal/dss/dss_dump.c | 60 + opal/dss/dss_internal.h | 565 ++ opal/dss/dss_internal_functions.c | 132 + opal/dss/dss_load_unload.c | 481 + opal/dss/dss_lookup.c | 35 + opal/dss/dss_open_close.c | 669 ++ opal/dss/dss_pack.c | 984 ++ opal/dss/dss_peek.c | 116 + opal/dss/dss_print.c | 917 ++ opal/dss/dss_register.c | 79 + opal/dss/dss_types.h | 297 + opal/dss/dss_unpack.c | 1255 +++ opal/etc/Makefile.am | 69 + opal/etc/openmpi-mca-params.conf | 58 + opal/include/Makefile.am | 36 + opal/include/opal/Makefile.am | 41 + opal/include/opal/align.h | 31 + opal/include/opal/constants.h | 103 + opal/include/opal/hash_string.h | 69 + opal/include/opal/opal_portable_platform.h | 401 + opal/include/opal/opal_socket_errno.h | 26 + opal/include/opal/prefetch.h | 58 + opal/include/opal/sys/Makefile.am | 42 + opal/include/opal/sys/amd64/Makefile.am | 23 + opal/include/opal/sys/amd64/atomic.h | 280 + opal/include/opal/sys/amd64/timer.h | 69 + opal/include/opal/sys/amd64/update.sh | 36 + opal/include/opal/sys/architecture.h | 54 + opal/include/opal/sys/arm/Makefile.am | 24 + opal/include/opal/sys/arm/atomic.h | 276 + opal/include/opal/sys/arm/timer.h | 33 + opal/include/opal/sys/arm/update.sh | 36 + opal/include/opal/sys/arm64/Makefile.am | 24 + opal/include/opal/sys/arm64/atomic.h | 301 + opal/include/opal/sys/arm64/timer.h | 45 + opal/include/opal/sys/arm64/update.sh | 36 + opal/include/opal/sys/atomic.h | 622 ++ opal/include/opal/sys/atomic_impl.h | 438 + opal/include/opal/sys/cma.h | 112 + opal/include/opal/sys/gcc_builtin/Makefile.am | 25 + opal/include/opal/sys/gcc_builtin/atomic.h | 228 + opal/include/opal/sys/ia32/Makefile.am | 23 + opal/include/opal/sys/ia32/atomic.h | 222 + opal/include/opal/sys/ia32/timer.h | 58 + opal/include/opal/sys/ia32/update.sh | 36 + opal/include/opal/sys/ia64/Makefile.am | 23 + opal/include/opal/sys/ia64/atomic.h | 145 + opal/include/opal/sys/ia64/timer.h | 48 + opal/include/opal/sys/ia64/update.sh | 37 + opal/include/opal/sys/mips/Makefile.am | 24 + opal/include/opal/sys/mips/atomic.h | 198 + opal/include/opal/sys/mips/timer.h | 33 + opal/include/opal/sys/mips/update.sh | 36 + opal/include/opal/sys/osx/Makefile.am | 24 + opal/include/opal/sys/osx/atomic.h | 169 + opal/include/opal/sys/powerpc/Makefile.am | 23 + opal/include/opal/sys/powerpc/atomic.h | 462 + opal/include/opal/sys/powerpc/timer.h | 52 + opal/include/opal/sys/powerpc/update.sh | 39 + opal/include/opal/sys/sparcv9/Makefile.am | 23 + opal/include/opal/sys/sparcv9/atomic.h | 197 + opal/include/opal/sys/sparcv9/timer.h | 67 + opal/include/opal/sys/sparcv9/update.sh | 37 + .../include/opal/sys/sync_builtin/Makefile.am | 23 + opal/include/opal/sys/sync_builtin/atomic.h | 136 + opal/include/opal/sys/timer.h | 116 + opal/include/opal/types.h | 208 + opal/include/opal/version.h.in | 42 + opal/include/opal_config_bottom.h | 531 ++ opal/include/opal_config_top.h | 38 + opal/include/opal_stdint.h | 127 + opal/mca/Makefile.am | 23 + opal/mca/allocator/Makefile.am | 37 + opal/mca/allocator/allocator.h | 153 + opal/mca/allocator/base/Makefile.am | 23 + .../mca/allocator/base/allocator_base_frame.c | 66 + opal/mca/allocator/base/base.h | 66 + opal/mca/allocator/base/owner.txt | 7 + opal/mca/allocator/basic/Makefile.am | 44 + opal/mca/allocator/basic/allocator_basic.c | 371 + opal/mca/allocator/basic/allocator_basic.h | 169 + opal/mca/allocator/basic/owner.txt | 7 + opal/mca/allocator/bucket/Makefile.am | 45 + opal/mca/allocator/bucket/allocator_bucket.c | 144 + .../allocator/bucket/allocator_bucket_alloc.c | 384 + .../allocator/bucket/allocator_bucket_alloc.h | 219 + opal/mca/allocator/bucket/owner.txt | 7 + opal/mca/backtrace/Makefile.am | 37 + opal/mca/backtrace/backtrace.h | 79 + opal/mca/backtrace/base/Makefile.am | 23 + opal/mca/backtrace/base/backtrace_component.c | 40 + opal/mca/backtrace/base/base.h | 38 + opal/mca/backtrace/base/owner.txt | 7 + opal/mca/backtrace/configure.m4 | 21 + opal/mca/backtrace/execinfo/Makefile.am | 23 + .../backtrace/execinfo/backtrace_execinfo.c | 76 + .../execinfo/backtrace_execinfo_component.c | 41 + opal/mca/backtrace/execinfo/configure.m4 | 42 + opal/mca/backtrace/execinfo/owner.txt | 7 + opal/mca/backtrace/none/Makefile.am | 23 + opal/mca/backtrace/none/backtrace_none.c | 40 + .../backtrace/none/backtrace_none_component.c | 45 + opal/mca/backtrace/none/configure.m4 | 34 + opal/mca/backtrace/none/owner.txt | 7 + opal/mca/backtrace/printstack/Makefile.am | 23 + .../printstack/backtrace_printstack.c | 47 + .../backtrace_printstack_component.c | 41 + opal/mca/backtrace/printstack/configure.m4 | 43 + opal/mca/backtrace/printstack/owner.txt | 7 + opal/mca/base/Makefile.am | 69 + opal/mca/base/base.h | 254 + opal/mca/base/help-mca-base.txt | 61 + opal/mca/base/help-mca-var.txt | 139 + opal/mca/base/mca_base_close.c | 67 + opal/mca/base/mca_base_cmd_line.c | 237 + opal/mca/base/mca_base_component_compare.c | 152 + opal/mca/base/mca_base_component_find.c | 380 + opal/mca/base/mca_base_component_repository.c | 571 ++ opal/mca/base/mca_base_component_repository.h | 132 + opal/mca/base/mca_base_components_close.c | 93 + opal/mca/base/mca_base_components_open.c | 169 + opal/mca/base/mca_base_components_register.c | 161 + opal/mca/base/mca_base_components_select.c | 147 + opal/mca/base/mca_base_framework.c | 241 + opal/mca/base/mca_base_framework.h | 242 + opal/mca/base/mca_base_list.c | 64 + opal/mca/base/mca_base_open.c | 251 + opal/mca/base/mca_base_parse_paramfile.c | 84 + opal/mca/base/mca_base_pvar.c | 996 ++ opal/mca/base/mca_base_pvar.h | 569 ++ opal/mca/base/mca_base_var.c | 2220 +++++ opal/mca/base/mca_base_var.h | 749 ++ opal/mca/base/mca_base_var_enum.c | 629 ++ opal/mca/base/mca_base_var_enum.h | 245 + opal/mca/base/mca_base_var_group.c | 530 + opal/mca/base/mca_base_var_group.h | 174 + opal/mca/base/mca_base_vari.h | 173 + opal/mca/btl/Makefile.am | 39 + opal/mca/btl/base/Makefile.am | 29 + opal/mca/btl/base/base.h | 83 + opal/mca/btl/base/btl_base_error.c | 81 + opal/mca/btl/base/btl_base_error.h | 99 + opal/mca/btl/base/btl_base_frame.c | 225 + opal/mca/btl/base/btl_base_mca.c | 198 + opal/mca/btl/base/btl_base_select.c | 179 + opal/mca/btl/base/help-mpi-btl-base.txt | 28 + opal/mca/btl/base/owner.txt | 7 + opal/mca/btl/btl.h | 1253 +++ opal/mca/btl/openib/Makefile.am | 129 + opal/mca/btl/openib/btl-openib-benchmark | 19 + opal/mca/btl/openib/btl_openib.c | 2010 ++++ opal/mca/btl/openib/btl_openib.h | 927 ++ opal/mca/btl/openib/btl_openib_async.c | 508 + opal/mca/btl/openib/btl_openib_async.h | 59 + opal/mca/btl/openib/btl_openib_atomic.c | 140 + opal/mca/btl/openib/btl_openib_component.c | 3897 ++++++++ opal/mca/btl/openib/btl_openib_eager_rdma.h | 118 + opal/mca/btl/openib/btl_openib_endpoint.c | 1050 ++ opal/mca/btl/openib/btl_openib_endpoint.h | 725 ++ opal/mca/btl/openib/btl_openib_frag.c | 222 + opal/mca/btl/openib/btl_openib_frag.h | 422 + opal/mca/btl/openib/btl_openib_get.c | 167 + opal/mca/btl/openib/btl_openib_ini.c | 678 ++ opal/mca/btl/openib/btl_openib_ini.h | 70 + opal/mca/btl/openib/btl_openib_ip.c | 446 + opal/mca/btl/openib/btl_openib_ip.h | 55 + opal/mca/btl/openib/btl_openib_lex.h | 74 + opal/mca/btl/openib/btl_openib_lex.l | 148 + opal/mca/btl/openib/btl_openib_mca.c | 781 ++ opal/mca/btl/openib/btl_openib_mca.h | 22 + opal/mca/btl/openib/btl_openib_proc.c | 418 + opal/mca/btl/openib/btl_openib_proc.h | 115 + opal/mca/btl/openib/btl_openib_put.c | 175 + opal/mca/btl/openib/btl_openib_xrc.c | 209 + opal/mca/btl/openib/btl_openib_xrc.h | 58 + opal/mca/btl/openib/common_sym_whitelist.txt | 4 + opal/mca/btl/openib/configure.m4 | 117 + opal/mca/btl/openib/connect/base.h | 105 + .../openib/connect/btl_openib_connect_base.c | 519 + .../openib/connect/btl_openib_connect_empty.c | 46 + .../openib/connect/btl_openib_connect_empty.h | 20 + .../connect/btl_openib_connect_rdmacm.c | 2306 +++++ .../connect/btl_openib_connect_rdmacm.h | 20 + .../openib/connect/btl_openib_connect_sl.c | 469 + .../openib/connect/btl_openib_connect_sl.h | 26 + .../openib/connect/btl_openib_connect_udcm.c | 3016 ++++++ .../openib/connect/btl_openib_connect_udcm.h | 22 + opal/mca/btl/openib/connect/connect.h | 355 + .../connect/help-mpi-btl-openib-cpc-base.txt | 57 + .../help-mpi-btl-openib-cpc-rdmacm.txt | 67 + opal/mca/btl/openib/help-mpi-btl-openib.txt | 708 ++ .../openib/mca-btl-openib-device-params.ini | 326 + opal/mca/btl/openib/owner.txt | 7 + opal/mca/btl/portals4/Makefile.am | 57 + opal/mca/btl/portals4/btl_portals4.c | 778 ++ opal/mca/btl/portals4/btl_portals4.h | 284 + .../mca/btl/portals4/btl_portals4_component.c | 784 ++ opal/mca/btl/portals4/btl_portals4_endpoint.h | 41 + opal/mca/btl/portals4/btl_portals4_frag.c | 95 + opal/mca/btl/portals4/btl_portals4_frag.h | 138 + opal/mca/btl/portals4/btl_portals4_rdma.c | 105 + opal/mca/btl/portals4/btl_portals4_recv.c | 102 + opal/mca/btl/portals4/btl_portals4_recv.h | 124 + opal/mca/btl/portals4/btl_portals4_send.c | 105 + opal/mca/btl/portals4/configure.m4 | 64 + opal/mca/btl/portals4/owner.txt | 7 + opal/mca/btl/scif/Makefile.am | 49 + opal/mca/btl/scif/btl_scif.h | 249 + opal/mca/btl/scif/btl_scif_add_procs.c | 259 + opal/mca/btl/scif/btl_scif_component.c | 386 + opal/mca/btl/scif/btl_scif_endpoint.c | 301 + opal/mca/btl/scif/btl_scif_endpoint.h | 110 + opal/mca/btl/scif/btl_scif_frag.c | 31 + opal/mca/btl/scif/btl_scif_frag.h | 95 + opal/mca/btl/scif/btl_scif_get.c | 75 + opal/mca/btl/scif/btl_scif_module.c | 308 + opal/mca/btl/scif/btl_scif_put.c | 72 + opal/mca/btl/scif/btl_scif_send.c | 299 + opal/mca/btl/scif/configure.m4 | 47 + opal/mca/btl/scif/owner.txt | 7 + opal/mca/btl/self/Makefile.am | 46 + opal/mca/btl/self/btl_self.c | 301 + opal/mca/btl/self/btl_self.h | 61 + opal/mca/btl/self/btl_self_component.c | 193 + opal/mca/btl/self/btl_self_frag.c | 68 + opal/mca/btl/self/btl_self_frag.h | 75 + opal/mca/btl/self/owner.txt | 7 + opal/mca/btl/sm/Makefile.am | 62 + opal/mca/btl/sm/btl_sm.c | 1323 +++ opal/mca/btl/sm/btl_sm.h | 587 ++ opal/mca/btl/sm/btl_sm_component.c | 1234 +++ opal/mca/btl/sm/btl_sm_endpoint.h | 49 + opal/mca/btl/sm/btl_sm_fifo.h | 110 + opal/mca/btl/sm/btl_sm_frag.c | 76 + opal/mca/btl/sm/btl_sm_frag.h | 115 + opal/mca/btl/sm/configure.m4 | 44 + opal/mca/btl/sm/help-mpi-btl-sm.txt | 107 + opal/mca/btl/sm/owner.txt | 7 + opal/mca/btl/smcuda/Makefile.am | 62 + opal/mca/btl/smcuda/README | 113 + opal/mca/btl/smcuda/btl_smcuda.c | 1307 +++ opal/mca/btl/smcuda/btl_smcuda.h | 546 ++ opal/mca/btl/smcuda/btl_smcuda_component.c | 1148 +++ opal/mca/btl/smcuda/btl_smcuda_endpoint.h | 59 + opal/mca/btl/smcuda/btl_smcuda_fifo.h | 109 + opal/mca/btl/smcuda/btl_smcuda_frag.c | 83 + opal/mca/btl/smcuda/btl_smcuda_frag.h | 122 + opal/mca/btl/smcuda/configure.m4 | 29 + opal/mca/btl/smcuda/help-mpi-btl-smcuda.txt | 27 + opal/mca/btl/smcuda/owner.txt | 7 + opal/mca/btl/tcp/Makefile.am | 65 + opal/mca/btl/tcp/btl_tcp.c | 534 ++ opal/mca/btl/tcp/btl_tcp.h | 356 + opal/mca/btl/tcp/btl_tcp_addr.h | 72 + opal/mca/btl/tcp/btl_tcp_component.c | 1329 +++ opal/mca/btl/tcp/btl_tcp_endpoint.c | 992 ++ opal/mca/btl/tcp/btl_tcp_endpoint.h | 100 + opal/mca/btl/tcp/btl_tcp_frag.c | 309 + opal/mca/btl/tcp/btl_tcp_frag.h | 132 + opal/mca/btl/tcp/btl_tcp_ft.c | 54 + opal/mca/btl/tcp/btl_tcp_ft.h | 34 + opal/mca/btl/tcp/btl_tcp_hdr.h | 58 + opal/mca/btl/tcp/btl_tcp_proc.c | 850 ++ opal/mca/btl/tcp/btl_tcp_proc.h | 126 + opal/mca/btl/tcp/configure.m4 | 40 + opal/mca/btl/tcp/help-mpi-btl-tcp.txt | 87 + opal/mca/btl/tcp/owner.txt | 7 + opal/mca/btl/template/.opal_ignore | 0 opal/mca/btl/template/.opal_unignore | 3 + opal/mca/btl/template/Makefile.am | 57 + opal/mca/btl/template/btl_template.c | 426 + opal/mca/btl/template/btl_template.h | 377 + .../mca/btl/template/btl_template_component.c | 156 + opal/mca/btl/template/btl_template_endpoint.c | 55 + opal/mca/btl/template/btl_template_endpoint.h | 50 + opal/mca/btl/template/btl_template_frag.c | 47 + opal/mca/btl/template/btl_template_frag.h | 106 + opal/mca/btl/template/btl_template_proc.c | 158 + opal/mca/btl/template/btl_template_proc.h | 61 + .../mca/btl/template/netpipe-btl-template.txt | 12 + opal/mca/btl/template/owner.txt | 7 + .../mca/btl/template/sample-btl-template.conf | 5 + opal/mca/btl/ugni/Makefile.am | 57 + opal/mca/btl/ugni/btl_ugni.h | 344 + opal/mca/btl/ugni/btl_ugni_add_procs.c | 566 ++ opal/mca/btl/ugni/btl_ugni_atomic.c | 220 + opal/mca/btl/ugni/btl_ugni_component.c | 684 ++ opal/mca/btl/ugni/btl_ugni_endpoint.c | 219 + opal/mca/btl/ugni/btl_ugni_endpoint.h | 200 + opal/mca/btl/ugni/btl_ugni_frag.c | 48 + opal/mca/btl/ugni/btl_ugni_frag.h | 222 + opal/mca/btl/ugni/btl_ugni_get.c | 190 + opal/mca/btl/ugni/btl_ugni_module.c | 318 + opal/mca/btl/ugni/btl_ugni_prepare.h | 201 + opal/mca/btl/ugni/btl_ugni_progress_thread.c | 130 + opal/mca/btl/ugni/btl_ugni_put.c | 30 + opal/mca/btl/ugni/btl_ugni_rdma.h | 209 + opal/mca/btl/ugni/btl_ugni_send.c | 181 + opal/mca/btl/ugni/btl_ugni_smsg.c | 255 + opal/mca/btl/ugni/btl_ugni_smsg.h | 142 + opal/mca/btl/ugni/configure.m4 | 54 + opal/mca/btl/ugni/owner.txt | 7 + opal/mca/btl/usnic/Makefile.am | 106 + opal/mca/btl/usnic/README.test | 74 + opal/mca/btl/usnic/README.txt | 374 + opal/mca/btl/usnic/btl_usnic.h | 286 + opal/mca/btl/usnic/btl_usnic_ack.c | 294 + opal/mca/btl/usnic/btl_usnic_ack.h | 107 + opal/mca/btl/usnic/btl_usnic_cagent.c | 1265 +++ opal/mca/btl/usnic/btl_usnic_cclient.c | 326 + opal/mca/btl/usnic/btl_usnic_compat.c | 826 ++ opal/mca/btl/usnic/btl_usnic_compat.h | 380 + opal/mca/btl/usnic/btl_usnic_component.c | 1536 +++ opal/mca/btl/usnic/btl_usnic_connectivity.h | 297 + opal/mca/btl/usnic/btl_usnic_endpoint.c | 177 + opal/mca/btl/usnic/btl_usnic_endpoint.h | 203 + opal/mca/btl/usnic/btl_usnic_frag.c | 313 + opal/mca/btl/usnic/btl_usnic_frag.h | 617 ++ opal/mca/btl/usnic/btl_usnic_graph.c | 1048 ++ opal/mca/btl/usnic/btl_usnic_graph.h | 163 + opal/mca/btl/usnic/btl_usnic_hwloc.c | 226 + opal/mca/btl/usnic/btl_usnic_hwloc.h | 22 + opal/mca/btl/usnic/btl_usnic_map.c | 275 + opal/mca/btl/usnic/btl_usnic_mca.c | 329 + opal/mca/btl/usnic/btl_usnic_module.c | 2541 +++++ opal/mca/btl/usnic/btl_usnic_module.h | 297 + opal/mca/btl/usnic/btl_usnic_proc.c | 821 ++ opal/mca/btl/usnic/btl_usnic_proc.h | 100 + opal/mca/btl/usnic/btl_usnic_recv.c | 374 + opal/mca/btl/usnic/btl_usnic_recv.h | 448 + opal/mca/btl/usnic/btl_usnic_send.c | 184 + opal/mca/btl/usnic/btl_usnic_send.h | 319 + opal/mca/btl/usnic/btl_usnic_stats.c | 538 ++ opal/mca/btl/usnic/btl_usnic_stats.h | 81 + opal/mca/btl/usnic/btl_usnic_test.c | 127 + opal/mca/btl/usnic/btl_usnic_test.h | 95 + opal/mca/btl/usnic/btl_usnic_util.c | 203 + opal/mca/btl/usnic/btl_usnic_util.h | 125 + opal/mca/btl/usnic/configure.m4 | 145 + opal/mca/btl/usnic/help-mpi-btl-usnic.txt | 342 + opal/mca/btl/usnic/owner.txt | 7 + .../btl/usnic/test/btl_usnic_component_test.h | 54 + .../mca/btl/usnic/test/btl_usnic_graph_test.h | 1070 +++ opal/mca/btl/usnic/test/usnic_btl_run_tests.c | 102 + opal/mca/btl/vader/Makefile.am | 65 + opal/mca/btl/vader/btl_vader.h | 283 + opal/mca/btl/vader/btl_vader_component.c | 704 ++ opal/mca/btl/vader/btl_vader_endpoint.h | 119 + opal/mca/btl/vader/btl_vader_fbox.h | 293 + opal/mca/btl/vader/btl_vader_fifo.h | 227 + opal/mca/btl/vader/btl_vader_frag.c | 82 + opal/mca/btl/vader/btl_vader_frag.h | 130 + opal/mca/btl/vader/btl_vader_get.c | 131 + opal/mca/btl/vader/btl_vader_knem.c | 203 + opal/mca/btl/vader/btl_vader_knem.h | 38 + opal/mca/btl/vader/btl_vader_module.c | 585 ++ opal/mca/btl/vader/btl_vader_put.c | 129 + opal/mca/btl/vader/btl_vader_send.c | 82 + opal/mca/btl/vader/btl_vader_sendi.c | 117 + opal/mca/btl/vader/btl_vader_xpmem.c | 184 + opal/mca/btl/vader/btl_vader_xpmem.h | 73 + opal/mca/btl/vader/configure.m4 | 53 + opal/mca/btl/vader/help-btl-vader.txt | 137 + opal/mca/btl/vader/owner.txt | 7 + opal/mca/common/Makefile.am | 25 + opal/mca/common/cuda/Makefile.am | 117 + opal/mca/common/cuda/common_cuda.c | 2065 ++++ opal/mca/common/cuda/common_cuda.h | 111 + opal/mca/common/cuda/configure.m4 | 34 + opal/mca/common/cuda/help-mpi-common-cuda.txt | 212 + opal/mca/common/cuda/owner.txt | 7 + opal/mca/common/libfabric/Makefile.am | 102 + opal/mca/common/libfabric/common_libfabric.c | 21 + opal/mca/common/libfabric/common_libfabric.h | 16 + opal/mca/common/libfabric/configure.m4 | 30 + opal/mca/common/libfabric/owner.txt | 7 + opal/mca/common/sm/Makefile.am | 119 + opal/mca/common/sm/common_sm.c | 302 + opal/mca/common/sm/common_sm.h | 155 + opal/mca/common/sm/common_sm_mpool.c | 273 + opal/mca/common/sm/common_sm_mpool.h | 62 + opal/mca/common/sm/configure.m4 | 30 + opal/mca/common/sm/help-mpi-common-sm.txt | 34 + opal/mca/common/sm/owner.txt | 7 + opal/mca/common/ugni/Makefile.am | 67 + opal/mca/common/ugni/common_ugni.c | 301 + opal/mca/common/ugni/common_ugni.h | 117 + opal/mca/common/ugni/common_ugni_ep.c | 118 + opal/mca/common/ugni/common_ugni_ep.h | 63 + opal/mca/common/ugni/configure.m4 | 54 + opal/mca/common/ugni/owner.txt | 7 + opal/mca/common/verbs/Makefile.am | 83 + opal/mca/common/verbs/common_verbs.h | 186 + opal/mca/common/verbs/common_verbs_basics.c | 107 + opal/mca/common/verbs/common_verbs_devlist.c | 95 + .../verbs/common_verbs_find_max_inline.c | 108 + .../common/verbs/common_verbs_find_ports.c | 505 + opal/mca/common/verbs/common_verbs_mca.c | 60 + opal/mca/common/verbs/common_verbs_port.c | 116 + opal/mca/common/verbs/common_verbs_qp_type.c | 104 + opal/mca/common/verbs/configure.m4 | 41 + .../common/verbs/help-opal-common-verbs.txt | 54 + opal/mca/common/verbs/owner.txt | 7 + opal/mca/common/verbs_usnic/Makefile.am | 40 + .../common/verbs_usnic/common_verbs_usnic.h | 27 + .../verbs_usnic/common_verbs_usnic_fake.c | 135 + opal/mca/common/verbs_usnic/configure.m4 | 84 + opal/mca/common/verbs_usnic/owner.txt | 7 + opal/mca/compress/Makefile.am | 36 + opal/mca/compress/base/Makefile.am | 20 + opal/mca/compress/base/base.h | 77 + opal/mca/compress/base/compress_base_close.c | 36 + opal/mca/compress/base/compress_base_fns.c | 135 + opal/mca/compress/base/compress_base_open.c | 63 + opal/mca/compress/base/compress_base_select.c | 69 + opal/mca/compress/base/owner.txt | 7 + opal/mca/compress/bzip/Makefile.am | 36 + opal/mca/compress/bzip/compress_bzip.h | 63 + .../compress/bzip/compress_bzip_component.c | 149 + opal/mca/compress/bzip/compress_bzip_module.c | 239 + opal/mca/compress/bzip/owner.txt | 7 + opal/mca/compress/compress.h | 137 + opal/mca/compress/gzip/Makefile.am | 36 + opal/mca/compress/gzip/compress_gzip.h | 63 + .../compress/gzip/compress_gzip_component.c | 150 + opal/mca/compress/gzip/compress_gzip_module.c | 242 + opal/mca/compress/gzip/owner.txt | 7 + opal/mca/crs/Makefile.am | 50 + opal/mca/crs/base/Makefile.am | 27 + opal/mca/crs/base/base.h | 136 + opal/mca/crs/base/crs_base_close.c | 41 + opal/mca/crs/base/crs_base_fns.c | 452 + opal/mca/crs/base/crs_base_open.c | 91 + opal/mca/crs/base/crs_base_select.c | 78 + opal/mca/crs/base/owner.txt | 7 + opal/mca/crs/blcr/Makefile.am | 49 + opal/mca/crs/blcr/configure.m4 | 204 + opal/mca/crs/blcr/crs_blcr.h | 84 + opal/mca/crs/blcr/crs_blcr_component.c | 145 + opal/mca/crs/blcr/crs_blcr_module.c | 865 ++ opal/mca/crs/blcr/help-opal-crs-blcr.txt | 28 + opal/mca/crs/criu/Makefile.am | 49 + opal/mca/crs/criu/configure.m4 | 93 + opal/mca/crs/criu/crs_criu.h | 88 + opal/mca/crs/criu/crs_criu_component.c | 213 + opal/mca/crs/criu/crs_criu_module.c | 261 + opal/mca/crs/criu/owner.txt | 7 + opal/mca/crs/crs.h | 307 + opal/mca/crs/dmtcp/Makefile.am | 41 + opal/mca/crs/dmtcp/configure.m4 | 140 + opal/mca/crs/dmtcp/crs_dmtcp.h | 87 + opal/mca/crs/dmtcp/crs_dmtcp_component.c | 133 + opal/mca/crs/dmtcp/crs_dmtcp_module.c | 709 ++ opal/mca/crs/dmtcp/owner.txt | 7 + opal/mca/crs/none/Makefile.am | 40 + opal/mca/crs/none/crs_none.h | 74 + opal/mca/crs/none/crs_none_component.c | 138 + opal/mca/crs/none/crs_none_module.c | 194 + opal/mca/crs/none/help-opal-crs-none.txt | 20 + opal/mca/crs/none/owner.txt | 7 + opal/mca/crs/opal_crs.7in | 179 + opal/mca/crs/self/Makefile.am | 44 + opal/mca/crs/self/configure.m4 | 46 + opal/mca/crs/self/crs_self.h | 96 + opal/mca/crs/self/crs_self_component.c | 182 + opal/mca/crs/self/crs_self_module.c | 755 ++ opal/mca/crs/self/help-opal-crs-self.txt | 49 + opal/mca/crs/self/owner.txt | 7 + opal/mca/dl/Makefile.am | 36 + opal/mca/dl/base/Makefile.am | 17 + opal/mca/dl/base/base.h | 106 + opal/mca/dl/base/dl_base_close.c | 25 + opal/mca/dl/base/dl_base_fns.c | 68 + opal/mca/dl/base/dl_base_open.c | 54 + opal/mca/dl/base/dl_base_select.c | 55 + opal/mca/dl/configure.m4 | 77 + opal/mca/dl/dl.h | 186 + opal/mca/dl/dlopen/Makefile.am | 23 + opal/mca/dl/dlopen/configure.m4 | 55 + opal/mca/dl/dlopen/dl_dlopen.h | 40 + opal/mca/dl/dlopen/dl_dlopen_component.c | 127 + opal/mca/dl/dlopen/dl_dlopen_module.c | 274 + opal/mca/dl/libltdl/Makefile.am | 26 + opal/mca/dl/libltdl/configure.m4 | 123 + opal/mca/dl/libltdl/dl_libltdl.h | 50 + opal/mca/dl/libltdl/dl_libltdl_component.c | 157 + opal/mca/dl/libltdl/dl_libltdl_module.c | 133 + opal/mca/event/Makefile.am | 27 + opal/mca/event/OMPI_LIBEVENT_README.txt | 26 + opal/mca/event/base/Makefile.am | 15 + opal/mca/event/base/README.openmpi | 71 + opal/mca/event/base/base.h | 34 + opal/mca/event/base/event_base_frame.c | 97 + opal/mca/event/base/owner.txt | 7 + opal/mca/event/configure.m4 | 65 + opal/mca/event/event.h | 78 + opal/mca/event/external/Makefile.am | 25 + opal/mca/event/external/configure.m4 | 170 + .../event/external/event_external_component.c | 64 + .../event/external/event_external_module.c | 30 + opal/mca/event/external/external.h | 117 + opal/mca/event/external/owner.txt | 7 + opal/mca/event/libevent2022/Makefile.am | 87 + opal/mca/event/libevent2022/autogen.subdirs | 1 + opal/mca/event/libevent2022/configure.m4 | 209 + .../mca/event/libevent2022/libevent/ChangeLog | 1396 +++ opal/mca/event/libevent2022/libevent/Doxyfile | 257 + opal/mca/event/libevent2022/libevent/LICENSE | 74 + .../event/libevent2022/libevent/Makefile.am | 286 + .../libevent2022/libevent/Makefile.nmake | 47 + opal/mca/event/libevent2022/libevent/README | 198 + .../libevent/WIN32-Code/event2/event-config.h | 363 + .../libevent2022/libevent/WIN32-Code/tree.h | 1354 +++ .../event/libevent2022/libevent/arc4random.c | 561 ++ .../event/libevent2022/libevent/autogen.sh | 15 + opal/mca/event/libevent2022/libevent/buffer.c | 3122 ++++++ .../event/libevent2022/libevent/buffer_iocp.c | 325 + .../libevent/bufferevent-internal.h | 410 + .../event/libevent2022/libevent/bufferevent.c | 875 ++ .../libevent2022/libevent/bufferevent_async.c | 690 ++ .../libevent/bufferevent_filter.c | 511 + .../libevent/bufferevent_openssl.c | 1454 +++ .../libevent2022/libevent/bufferevent_pair.c | 334 + .../libevent/bufferevent_ratelim.c | 1011 ++ .../libevent2022/libevent/bufferevent_sock.c | 699 ++ .../libevent/changelist-internal.h | 101 + .../libevent2022/libevent/compat/sys/queue.h | 488 + .../event/libevent2022/libevent/configure.ac | 1044 ++ .../libevent2022/libevent/defer-internal.h | 100 + .../mca/event/libevent2022/libevent/devpoll.c | 306 + opal/mca/event/libevent2022/libevent/epoll.c | 473 + .../event/libevent2022/libevent/epoll_sub.c | 65 + .../libevent2022/libevent/evbuffer-internal.h | 293 + opal/mca/event/libevent2022/libevent/evdns.c | 4673 +++++++++ opal/mca/event/libevent2022/libevent/evdns.h | 45 + .../libevent2022/libevent/event-internal.h | 368 + opal/mca/event/libevent2022/libevent/event.c | 2948 ++++++ opal/mca/event/libevent2022/libevent/event.h | 85 + .../event/libevent2022/libevent/event_iocp.c | 293 + .../libevent2022/libevent/event_rpcgen.py | 1717 ++++ .../libevent2022/libevent/event_tagging.c | 596 ++ opal/mca/event/libevent2022/libevent/evhttp.h | 45 + .../libevent2022/libevent/evmap-internal.h | 92 + opal/mca/event/libevent2022/libevent/evmap.c | 799 ++ opal/mca/event/libevent2022/libevent/evport.c | 473 + .../libevent2022/libevent/evrpc-internal.h | 204 + opal/mca/event/libevent2022/libevent/evrpc.c | 1174 +++ opal/mca/event/libevent2022/libevent/evrpc.h | 45 + .../libevent2022/libevent/evsignal-internal.h | 64 + .../libevent2022/libevent/evthread-internal.h | 382 + .../event/libevent2022/libevent/evthread.c | 445 + .../libevent2022/libevent/evthread_pthread.c | 189 + .../libevent2022/libevent/evthread_win32.c | 339 + opal/mca/event/libevent2022/libevent/evutil.c | 2190 +++++ opal/mca/event/libevent2022/libevent/evutil.h | 39 + .../event/libevent2022/libevent/evutil_rand.c | 185 + .../event/libevent2022/libevent/ht-internal.h | 484 + .../libevent2022/libevent/http-internal.h | 195 + opal/mca/event/libevent2022/libevent/http.c | 4529 +++++++++ .../libevent2022/libevent/include/Makefile.am | 50 + .../libevent/include/event2/buffer.h | 842 ++ .../libevent/include/event2/buffer_compat.h | 110 + .../libevent/include/event2/bufferevent.h | 821 ++ .../include/event2/bufferevent_compat.h | 100 + .../libevent/include/event2/bufferevent_ssl.h | 107 + .../include/event2/bufferevent_struct.h | 116 + .../libevent/include/event2/dns.h | 643 ++ .../libevent/include/event2/dns_compat.h | 336 + .../libevent/include/event2/dns_struct.h | 80 + .../libevent/include/event2/event.h | 1212 +++ .../libevent/include/event2/event_compat.h | 220 + .../libevent/include/event2/event_struct.h | 141 + .../libevent/include/event2/http.h | 863 ++ .../libevent/include/event2/http_compat.h | 90 + .../libevent/include/event2/http_struct.h | 130 + .../libevent/include/event2/keyvalq_struct.h | 80 + .../libevent/include/event2/listener.h | 143 + .../libevent/include/event2/rpc.h | 596 ++ .../libevent/include/event2/rpc_compat.h | 61 + .../libevent/include/event2/rpc_struct.h | 100 + .../libevent/include/event2/tag.h | 124 + .../libevent/include/event2/tag_compat.h | 49 + .../libevent/include/event2/thread.h | 239 + .../libevent/include/event2/util.h | 705 ++ .../libevent2022/libevent/iocp-internal.h | 201 + .../libevent2022/libevent/ipv6-internal.h | 81 + opal/mca/event/libevent2022/libevent/kqueue.c | 475 + .../libevent2022/libevent/libevent.pc.in | 16 + .../libevent/libevent_openssl.pc.in | 16 + .../libevent/libevent_pthreads.pc.in | 16 + .../event/libevent2022/libevent/listener.c | 886 ++ .../libevent2022/libevent/log-internal.h | 63 + opal/mca/event/libevent2022/libevent/log.c | 228 + .../libevent/m4/ac_backport_259_ssizet.m4 | 3 + .../libevent2022/libevent/m4/acx_pthread.m4 | 279 + .../libevent/make-event-config.sed | 23 + .../libevent2022/libevent/minheap-internal.h | 160 + .../event/libevent2022/libevent/mm-internal.h | 61 + .../event/libevent2022/libevent/opal_rename.h | 569 ++ opal/mca/event/libevent2022/libevent/poll.c | 333 + .../libevent2022/libevent/ratelim-internal.h | 105 + .../libevent2022/libevent/sample/Makefile.am | 29 + .../libevent/sample/dns-example.c | 248 + .../libevent2022/libevent/sample/event-test.c | 143 + .../libevent/sample/hello-world.c | 141 + .../libevent/sample/http-server.c | 405 + .../libevent2022/libevent/sample/le-proxy.c | 278 + .../libevent/sample/signal-test.c | 76 + .../libevent2022/libevent/sample/time-test.c | 107 + opal/mca/event/libevent2022/libevent/select.c | 333 + opal/mca/event/libevent2022/libevent/signal.c | 445 + .../libevent2022/libevent/strlcpy-internal.h | 22 + .../mca/event/libevent2022/libevent/strlcpy.c | 74 + .../libevent2022/libevent/test/Makefile.am | 105 + .../libevent2022/libevent/test/Makefile.nmake | 61 + .../event/libevent2022/libevent/test/bench.c | 196 + .../libevent/test/bench_cascade.c | 179 + .../libevent2022/libevent/test/bench_http.c | 191 + .../libevent/test/bench_httpclient.c | 223 + .../libevent2022/libevent/test/regress.c | 2489 +++++ .../libevent2022/libevent/test/regress.gen.c | 1225 +++ .../libevent2022/libevent/test/regress.gen.h | 207 + .../libevent2022/libevent/test/regress.h | 129 + .../libevent2022/libevent/test/regress.rpc | 25 + .../libevent/test/regress_buffer.c | 1677 ++++ .../libevent/test/regress_bufferevent.c | 843 ++ .../libevent2022/libevent/test/regress_dns.c | 1855 ++++ .../libevent2022/libevent/test/regress_et.c | 207 + .../libevent2022/libevent/test/regress_http.c | 3625 +++++++ .../libevent2022/libevent/test/regress_iocp.c | 352 + .../libevent/test/regress_listener.c | 214 + .../libevent2022/libevent/test/regress_main.c | 420 + .../libevent/test/regress_minheap.c | 98 + .../libevent2022/libevent/test/regress_rpc.c | 898 ++ .../libevent2022/libevent/test/regress_ssl.c | 472 + .../libevent/test/regress_testutils.c | 220 + .../libevent/test/regress_testutils.h | 66 + .../libevent/test/regress_thread.c | 511 + .../libevent2022/libevent/test/regress_util.c | 1094 +++ .../libevent2022/libevent/test/regress_zlib.c | 345 + .../libevent/test/rpcgen_wrapper.sh | 49 + .../libevent/test/test-changelist.c | 223 + .../libevent2022/libevent/test/test-eof.c | 124 + .../libevent2022/libevent/test/test-init.c | 65 + .../libevent2022/libevent/test/test-ratelim.c | 478 + .../libevent2022/libevent/test/test-time.c | 113 + .../libevent2022/libevent/test/test-weof.c | 117 + .../event/libevent2022/libevent/test/test.sh | 163 + .../libevent2022/libevent/test/tinytest.c | 400 + .../libevent2022/libevent/test/tinytest.h | 87 + .../libevent/test/tinytest_local.h | 12 + .../libevent/test/tinytest_macros.h | 184 + .../libevent2022/libevent/util-internal.h | 329 + .../libevent2022/libevent/whatsnew-2.0.txt | 609 ++ .../event/libevent2022/libevent/win32select.c | 377 + opal/mca/event/libevent2022/libevent2022.h | 152 + .../libevent2022/libevent2022_component.c | 202 + .../event/libevent2022/libevent2022_module.c | 127 + opal/mca/event/libevent2022/owner.txt | 7 + opal/mca/hwloc/Makefile.am | 27 + opal/mca/hwloc/README.txt | 20 + opal/mca/hwloc/base/Makefile.am | 21 + opal/mca/hwloc/base/base.h | 281 + opal/mca/hwloc/base/help-opal-hwloc-base.txt | 61 + opal/mca/hwloc/base/hwloc_base_dt.c | 318 + opal/mca/hwloc/base/hwloc_base_frame.c | 570 ++ opal/mca/hwloc/base/hwloc_base_maffinity.c | 173 + .../hwloc/base/hwloc_base_proc_mempolicy.c | 74 + opal/mca/hwloc/base/hwloc_base_util.c | 2130 +++++ opal/mca/hwloc/base/owner.txt | 7 + opal/mca/hwloc/configure.m4 | 154 + opal/mca/hwloc/external/Makefile.am | 31 + opal/mca/hwloc/external/configure.m4 | 209 + opal/mca/hwloc/external/external.h | 48 + .../hwloc/external/hwloc_external_component.c | 64 + opal/mca/hwloc/external/owner.txt | 7 + opal/mca/hwloc/hwloc.h | 223 + opal/mca/hwloc/hwloc1113/Makefile.am | 86 + opal/mca/hwloc/hwloc1113/README-ompi.txt | 6 + opal/mca/hwloc/hwloc1113/configure.m4 | 187 + opal/mca/hwloc/hwloc1113/hwloc/AUTHORS | 10 + opal/mca/hwloc/hwloc1113/hwloc/COPYING | 38 + opal/mca/hwloc/hwloc1113/hwloc/Makefile.am | 73 + opal/mca/hwloc/hwloc1113/hwloc/NEWS | 1309 +++ opal/mca/hwloc/hwloc1113/hwloc/README | 83 + opal/mca/hwloc/hwloc1113/hwloc/VERSION | 46 + .../hwloc1113/hwloc/config/distscript.sh | 130 + .../mca/hwloc/hwloc1113/hwloc/config/hwloc.m4 | 1400 +++ .../hwloc/config/hwloc_check_attributes.m4 | 534 ++ .../hwloc/config/hwloc_check_vendor.m4 | 239 + .../hwloc/config/hwloc_check_visibility.m4 | 131 + .../hwloc/config/hwloc_components.m4 | 66 + .../hwloc/config/hwloc_get_version.sh | 98 + .../hwloc1113/hwloc/config/hwloc_internal.m4 | 433 + .../hwloc/hwloc1113/hwloc/config/hwloc_pkg.m4 | 207 + .../hwloc/hwloc1113/hwloc/config/test-driver | 148 + opal/mca/hwloc/hwloc1113/hwloc/configure.ac | 242 + .../hwloc/contrib/hwloc-valgrind.supp | 145 + .../hwloc/contrib/systemd/README.txt | 4 + opal/mca/hwloc/hwloc1113/hwloc/doc/README.txt | 4 + opal/mca/hwloc/hwloc1113/hwloc/hwloc.pc.in | 12 + .../hwloc/hwloc1113/hwloc/include/Makefile.am | 55 + .../mca/hwloc/hwloc1113/hwloc/include/hwloc.h | 2538 +++++ .../hwloc/include/hwloc/autogen/config.h.in | 201 + .../hwloc1113/hwloc/include/hwloc/bitmap.h | 367 + .../hwloc1113/hwloc/include/hwloc/cuda.h | 224 + .../hwloc1113/hwloc/include/hwloc/cudart.h | 184 + .../hwloc/include/hwloc/deprecated.h | 102 + .../hwloc1113/hwloc/include/hwloc/diff.h | 299 + .../hwloc/hwloc1113/hwloc/include/hwloc/gl.h | 135 + .../hwloc/include/hwloc/glibc-sched.h | 125 + .../hwloc1113/hwloc/include/hwloc/helper.h | 1290 +++ .../hwloc1113/hwloc/include/hwloc/inlines.h | 154 + .../hwloc1113/hwloc/include/hwloc/intel-mic.h | 143 + .../hwloc/include/hwloc/linux-libnuma.h | 355 + .../hwloc1113/hwloc/include/hwloc/linux.h | 77 + .../hwloc/include/hwloc/myriexpress.h | 127 + .../hwloc1113/hwloc/include/hwloc/nvml.h | 176 + .../hwloc1113/hwloc/include/hwloc/opencl.h | 199 + .../hwloc/include/hwloc/openfabrics-verbs.h | 157 + .../hwloc1113/hwloc/include/hwloc/plugins.h | 439 + .../hwloc1113/hwloc/include/hwloc/rename.h | 659 ++ .../hwloc/include/private/autogen/config.h.in | 720 ++ .../hwloc/include/private/components.h | 40 + .../hwloc/include/private/cpuid-x86.h | 86 + .../hwloc1113/hwloc/include/private/debug.h | 78 + .../hwloc1113/hwloc/include/private/misc.h | 409 + .../hwloc1113/hwloc/include/private/private.h | 341 + .../hwloc/include/private/solaris-chiptype.h | 59 + .../hwloc1113/hwloc/include/private/xml.h | 97 + .../mca/hwloc/hwloc1113/hwloc/src/Makefile.am | 236 + opal/mca/hwloc/hwloc1113/hwloc/src/base64.c | 306 + opal/mca/hwloc/hwloc1113/hwloc/src/bind.c | 879 ++ opal/mca/hwloc/hwloc1113/hwloc/src/bitmap.c | 1485 +++ .../hwloc/hwloc1113/hwloc/src/components.c | 822 ++ opal/mca/hwloc/hwloc1113/hwloc/src/diff.c | 408 + .../mca/hwloc/hwloc1113/hwloc/src/distances.c | 1063 +++ opal/mca/hwloc/hwloc1113/hwloc/src/dolib.c | 47 + opal/mca/hwloc/hwloc1113/hwloc/src/hwloc.dtd | 71 + opal/mca/hwloc/hwloc1113/hwloc/src/misc.c | 166 + .../hwloc/hwloc1113/hwloc/src/pci-common.c | 537 ++ .../hwloc/hwloc1113/hwloc/src/topology-aix.c | 872 ++ .../hwloc/hwloc1113/hwloc/src/topology-bgq.c | 245 + .../hwloc/hwloc1113/hwloc/src/topology-cuda.c | 250 + .../hwloc1113/hwloc/src/topology-custom.c | 100 + .../hwloc1113/hwloc/src/topology-darwin.c | 307 + .../hwloc/hwloc1113/hwloc/src/topology-fake.c | 61 + .../hwloc1113/hwloc/src/topology-freebsd.c | 253 + .../hwloc/hwloc1113/hwloc/src/topology-gl.c | 271 + .../hwloc1113/hwloc/src/topology-hardwired.c | 197 + .../hwloc/hwloc1113/hwloc/src/topology-hpux.c | 313 + .../hwloc1113/hwloc/src/topology-linux.c | 5524 +++++++++++ .../hwloc1113/hwloc/src/topology-netbsd.c | 214 + .../hwloc/hwloc1113/hwloc/src/topology-noos.c | 58 + .../hwloc/hwloc1113/hwloc/src/topology-nvml.c | 239 + .../hwloc1113/hwloc/src/topology-opencl.c | 346 + .../hwloc/hwloc1113/hwloc/src/topology-osf.c | 392 + .../hwloc/hwloc1113/hwloc/src/topology-pci.c | 346 + .../hwloc/src/topology-solaris-chiptype.c | 339 + .../hwloc1113/hwloc/src/topology-solaris.c | 803 ++ .../hwloc1113/hwloc/src/topology-synthetic.c | 1117 +++ .../hwloc1113/hwloc/src/topology-windows.c | 1130 +++ .../hwloc/hwloc1113/hwloc/src/topology-x86.c | 1208 +++ .../hwloc1113/hwloc/src/topology-xml-libxml.c | 547 ++ .../hwloc/src/topology-xml-nolibxml.c | 852 ++ .../hwloc/hwloc1113/hwloc/src/topology-xml.c | 1789 ++++ opal/mca/hwloc/hwloc1113/hwloc/src/topology.c | 3294 +++++++ .../mca/hwloc/hwloc1113/hwloc/src/traversal.c | 714 ++ .../hwloc/hwloc1113/hwloc/tests/README.txt | 4 + .../hwloc/hwloc1113/hwloc/utils/README.txt | 4 + opal/mca/hwloc/hwloc1113/hwloc1113.h | 48 + .../mca/hwloc/hwloc1113/hwloc1113_component.c | 55 + opal/mca/hwloc/hwloc1113/owner.txt | 7 + opal/mca/if/Makefile.am | 27 + opal/mca/if/base/Makefile.am | 14 + opal/mca/if/base/base.h | 29 + opal/mca/if/base/if_base_components.c | 104 + opal/mca/if/base/owner.txt | 7 + opal/mca/if/bsdx_ipv4/Makefile.am | 12 + opal/mca/if/bsdx_ipv4/configure.m4 | 46 + opal/mca/if/bsdx_ipv4/if_bsdx.c | 146 + opal/mca/if/bsdx_ipv4/owner.txt | 7 + opal/mca/if/bsdx_ipv6/Makefile.am | 12 + opal/mca/if/bsdx_ipv6/configure.m4 | 47 + opal/mca/if/bsdx_ipv6/if_bsdx_ipv6.c | 231 + opal/mca/if/bsdx_ipv6/owner.txt | 7 + opal/mca/if/if.h | 136 + opal/mca/if/linux_ipv6/Makefile.am | 12 + opal/mca/if/linux_ipv6/configure.m4 | 35 + opal/mca/if/linux_ipv6/if_linux_ipv6.c | 176 + opal/mca/if/linux_ipv6/owner.txt | 7 + opal/mca/if/posix_ipv4/Makefile.am | 12 + opal/mca/if/posix_ipv4/configure.m4 | 54 + opal/mca/if/posix_ipv4/if_posix.c | 298 + opal/mca/if/posix_ipv4/owner.txt | 7 + opal/mca/if/solaris_ipv6/Makefile.am | 12 + opal/mca/if/solaris_ipv6/configure.m4 | 32 + opal/mca/if/solaris_ipv6/if_solaris_ipv6.c | 165 + opal/mca/if/solaris_ipv6/owner.txt | 7 + opal/mca/installdirs/Makefile.am | 29 + opal/mca/installdirs/base/Makefile.am | 16 + opal/mca/installdirs/base/base.h | 39 + .../base/installdirs_base_components.c | 177 + .../base/installdirs_base_expand.c | 173 + opal/mca/installdirs/base/owner.txt | 7 + opal/mca/installdirs/config/Makefile.am | 21 + opal/mca/installdirs/config/configure.m4 | 29 + opal/mca/installdirs/config/install_dirs.h.in | 128 + .../config/opal_installdirs_config.c | 56 + opal/mca/installdirs/config/owner.txt | 7 + opal/mca/installdirs/configure.m4 | 11 + opal/mca/installdirs/env/Makefile.am | 16 + opal/mca/installdirs/env/configure.m4 | 27 + .../installdirs/env/opal_installdirs_env.c | 83 + opal/mca/installdirs/env/owner.txt | 7 + opal/mca/installdirs/installdirs.h | 97 + opal/mca/mca.h | 382 + opal/mca/memchecker/Makefile.am | 29 + opal/mca/memchecker/base/Makefile.am | 18 + opal/mca/memchecker/base/base.h | 251 + .../memchecker/base/memchecker_base_open.c | 33 + .../memchecker/base/memchecker_base_select.c | 71 + .../base/memchecker_base_wrappers.c | 88 + opal/mca/memchecker/base/owner.txt | 7 + opal/mca/memchecker/configure.m4 | 56 + opal/mca/memchecker/memchecker.h | 186 + opal/mca/memchecker/valgrind/Makefile.am | 39 + opal/mca/memchecker/valgrind/configure.m4 | 74 + .../memchecker/valgrind/memchecker_valgrind.h | 46 + .../valgrind/memchecker_valgrind_component.c | 113 + .../valgrind/memchecker_valgrind_module.c | 207 + opal/mca/memchecker/valgrind/owner.txt | 7 + opal/mca/memcpy/Makefile.am | 32 + opal/mca/memcpy/base/Makefile.am | 17 + opal/mca/memcpy/base/base.h | 37 + opal/mca/memcpy/base/memcpy_base_default.h | 42 + opal/mca/memcpy/base/memcpy_base_open.c | 34 + opal/mca/memcpy/base/owner.txt | 7 + opal/mca/memcpy/configure.m4 | 32 + opal/mca/memcpy/memcpy.h | 49 + opal/mca/memory/Makefile.am | 37 + opal/mca/memory/base/Makefile.am | 26 + opal/mca/memory/base/base.h | 38 + opal/mca/memory/base/empty.h | 67 + opal/mca/memory/base/memory_base_empty.c | 44 + opal/mca/memory/base/memory_base_open.c | 122 + opal/mca/memory/base/owner.txt | 7 + opal/mca/memory/configure.m4 | 46 + opal/mca/memory/malloc_solaris/Makefile.am | 26 + opal/mca/memory/malloc_solaris/configure.m4 | 118 + .../memory_malloc_solaris_component.c | 145 + opal/mca/memory/malloc_solaris/owner.txt | 7 + opal/mca/memory/memory.h | 174 + opal/mca/memory/patcher/Makefile.am | 32 + opal/mca/memory/patcher/configure.m4 | 52 + opal/mca/memory/patcher/memory_patcher.h | 27 + .../memory/patcher/memory_patcher_component.c | 527 + opal/mca/mpool/Makefile.am | 38 + opal/mca/mpool/base/Makefile.am | 34 + opal/mca/mpool/base/base.h | 68 + opal/mca/mpool/base/help-mpool-base.txt | 32 + opal/mca/mpool/base/mpool_base_alloc.c | 138 + opal/mca/mpool/base/mpool_base_default.c | 87 + opal/mca/mpool/base/mpool_base_frame.c | 136 + opal/mca/mpool/base/mpool_base_lookup.c | 76 + opal/mca/mpool/base/mpool_base_tree.c | 235 + opal/mca/mpool/base/mpool_base_tree.h | 100 + opal/mca/mpool/base/owner.txt | 7 + opal/mca/mpool/hugepage/Makefile.am | 52 + opal/mca/mpool/hugepage/mpool_hugepage.h | 90 + .../mpool/hugepage/mpool_hugepage_component.c | 394 + .../mpool/hugepage/mpool_hugepage_module.c | 258 + opal/mca/mpool/memkind/Makefile.am | 41 + opal/mca/mpool/memkind/configure.m4 | 42 + opal/mca/mpool/memkind/mpool_memkind.h | 94 + .../mpool/memkind/mpool_memkind_component.c | 267 + opal/mca/mpool/memkind/mpool_memkind_module.c | 83 + opal/mca/mpool/mpool.h | 197 + opal/mca/patcher/Makefile.am | 39 + opal/mca/patcher/base/Makefile.am | 25 + opal/mca/patcher/base/base.h | 83 + opal/mca/patcher/base/patcher_base_frame.c | 81 + opal/mca/patcher/base/patcher_base_patch.c | 191 + opal/mca/patcher/linux/Makefile.am | 47 + opal/mca/patcher/linux/configure.m4 | 57 + opal/mca/patcher/linux/patcher_linux.h | 45 + .../patcher/linux/patcher_linux_component.c | 43 + opal/mca/patcher/linux/patcher_linux_module.c | 397 + opal/mca/patcher/overwrite/Makefile.am | 47 + opal/mca/patcher/overwrite/configure.m4 | 42 + .../mca/patcher/overwrite/patcher_overwrite.h | 32 + .../overwrite/patcher_overwrite_component.c | 45 + .../overwrite/patcher_overwrite_module.c | 307 + opal/mca/patcher/patcher.h | 121 + opal/mca/pmix/Makefile.am | 32 + opal/mca/pmix/base/Makefile.am | 23 + opal/mca/pmix/base/base.h | 66 + opal/mca/pmix/base/help-pmix-base.txt | 19 + opal/mca/pmix/base/pmix_base_fns.c | 780 ++ opal/mca/pmix/base/pmix_base_fns.h | 40 + opal/mca/pmix/base/pmix_base_frame.c | 154 + opal/mca/pmix/base/pmix_base_hash.c | 298 + opal/mca/pmix/base/pmix_base_hash.h | 37 + opal/mca/pmix/base/pmix_base_select.c | 51 + opal/mca/pmix/cray/Makefile.am | 44 + opal/mca/pmix/cray/configure.m4 | 40 + opal/mca/pmix/cray/help-pmix-cray.txt | 17 + opal/mca/pmix/cray/owner.txt | 7 + opal/mca/pmix/cray/pmix_cray.c | 1030 ++ opal/mca/pmix/cray/pmix_cray.h | 55 + opal/mca/pmix/cray/pmix_cray_component.c | 144 + opal/mca/pmix/cray/pmix_cray_pmap_parser.c | 243 + opal/mca/pmix/cray/pmix_cray_pmap_parser.h | 18 + opal/mca/pmix/ext11/Makefile.am | 46 + opal/mca/pmix/ext11/configure.m4 | 70 + opal/mca/pmix/ext11/pmix_ext.c | 578 ++ opal/mca/pmix/ext11/pmix_ext.h | 178 + opal/mca/pmix/ext11/pmix_ext_client.c | 1316 +++ opal/mca/pmix/ext11/pmix_ext_component.c | 106 + opal/mca/pmix/ext11/pmix_ext_server_north.c | 782 ++ opal/mca/pmix/ext11/pmix_ext_server_south.c | 424 + opal/mca/pmix/ext2x/Makefile.am | 46 + opal/mca/pmix/ext2x/configure.m4 | 65 + opal/mca/pmix/ext2x/pmix_ext2x.c | 1409 +++ opal/mca/pmix/ext2x/pmix_ext2x.h | 325 + opal/mca/pmix/ext2x/pmix_ext2x_client.c | 1284 +++ opal/mca/pmix/ext2x/pmix_ext2x_component.c | 131 + opal/mca/pmix/ext2x/pmix_ext2x_server_north.c | 754 ++ opal/mca/pmix/ext2x/pmix_ext2x_server_south.c | 517 + opal/mca/pmix/ext3x/Makefile.am | 46 + opal/mca/pmix/ext3x/common_sym_whitelist.txt | 6 + opal/mca/pmix/ext3x/configure.m4 | 60 + opal/mca/pmix/ext3x/pmix3x.c | 1489 +++ opal/mca/pmix/ext3x/pmix3x.h | 323 + opal/mca/pmix/ext3x/pmix3x_client.c | 1285 +++ opal/mca/pmix/ext3x/pmix3x_component.c | 131 + opal/mca/pmix/ext3x/pmix3x_server_north.c | 1047 ++ opal/mca/pmix/ext3x/pmix3x_server_south.c | 519 + opal/mca/pmix/isolated/Makefile.am | 34 + opal/mca/pmix/isolated/pmix_isolated.c | 439 + opal/mca/pmix/isolated/pmix_isolated.h | 28 + .../pmix/isolated/pmix_isolated_component.c | 87 + opal/mca/pmix/pmix.h | 867 ++ opal/mca/pmix/pmix3x/Makefile.am | 53 + opal/mca/pmix/pmix3x/autogen.subdirs | 1 + opal/mca/pmix/pmix3x/common_sym_whitelist.txt | 6 + opal/mca/pmix/pmix3x/configure.m4 | 99 + opal/mca/pmix/pmix3x/pmix/AUTHORS | 30 + opal/mca/pmix/pmix3x/pmix/INSTALL | 88 + opal/mca/pmix/pmix3x/pmix/LICENSE | 93 + opal/mca/pmix/pmix3x/pmix/Makefile.am | 64 + opal/mca/pmix/pmix3x/pmix/NEWS | 101 + opal/mca/pmix/pmix3x/pmix/README | 315 + opal/mca/pmix/pmix3x/pmix/VERSION | 78 + opal/mca/pmix/pmix3x/pmix/autogen.pl | 739 ++ opal/mca/pmix/pmix3x/pmix/config/Makefile.am | 50 + .../pmix3x/pmix/config/c_get_alignment.m4 | 72 + .../mca/pmix/pmix3x/pmix/config/distscript.sh | 56 + opal/mca/pmix/pmix3x/pmix/config/pmix.m4 | 929 ++ .../pmix/config/pmix_check_attributes.m4 | 539 ++ .../pmix/config/pmix_check_broken_qsort.m4 | 55 + .../config/pmix_check_compiler_version.m4 | 92 + .../pmix/pmix3x/pmix/config/pmix_check_icc.m4 | 62 + .../pmix3x/pmix/config/pmix_check_ident.m4 | 103 + .../pmix/config/pmix_check_os_flavors.m4 | 69 + .../pmix3x/pmix/config/pmix_check_package.m4 | 176 + .../pmix3x/pmix/config/pmix_check_vendor.m4 | 252 + .../pmix/config/pmix_check_visibility.m4 | 92 + .../pmix3x/pmix/config/pmix_config_subdir.m4 | 147 + .../pmix/config/pmix_config_subdir_args.m4 | 84 + .../config/pmix_ensure_contains_optflags.m4 | 67 + .../pmix/pmix3x/pmix/config/pmix_functions.m4 | 571 ++ .../pmix3x/pmix/config/pmix_get_version.sh | 161 + .../pmix3x/pmix/config/pmix_load_platform.m4 | 81 + opal/mca/pmix/pmix3x/pmix/config/pmix_mca.m4 | 918 ++ .../pmix/config/pmix_mca_priority_sort.pl | 31 + .../pmix3x/pmix/config/pmix_search_libs.m4 | 34 + .../pmix/pmix3x/pmix/config/pmix_setup_cc.m4 | 334 + .../pmix3x/pmix/config/pmix_setup_hwloc.m4 | 123 + .../pmix3x/pmix/config/pmix_setup_libevent.m4 | 130 + opal/mca/pmix/pmix3x/pmix/configure.ac | 228 + .../pmix3x/pmix/contrib/pmix-valgrind.supp | 48 + .../mca/pmix/pmix3x/pmix/examples/Makefile.am | 51 + opal/mca/pmix/pmix3x/pmix/examples/client.c | 174 + opal/mca/pmix/pmix3x/pmix/examples/dmodex.c | 234 + opal/mca/pmix/pmix3x/pmix/examples/dynamic.c | 204 + opal/mca/pmix/pmix3x/pmix/examples/fault.c | 131 + opal/mca/pmix/pmix3x/pmix/examples/pub.c | 164 + opal/mca/pmix/pmix3x/pmix/examples/tool.c | 86 + opal/mca/pmix/pmix3x/pmix/include/Makefile.am | 26 + opal/mca/pmix/pmix3x/pmix/include/pmi.h | 829 ++ opal/mca/pmix/pmix3x/pmix/include/pmi2.h | 562 ++ opal/mca/pmix/pmix3x/pmix/include/pmix.h | 445 + .../pmix/pmix3x/pmix/include/pmix_common.h | 1344 +++ .../pmix/pmix3x/pmix/include/pmix_rename.h.in | 74 + .../pmix/pmix3x/pmix/include/pmix_server.h | 490 + opal/mca/pmix/pmix3x/pmix/include/pmix_tool.h | 105 + .../pmix3x/pmix/include/pmix_version.h.in | 20 + opal/mca/pmix/pmix3x/pmix/man/Makefile.am | 60 + opal/mca/pmix/pmix3x/pmix/man/README | 186 + .../pmix/pmix3x/pmix/man/man3/pmix_abort.3 | 62 + .../pmix/pmix3x/pmix/man/man3/pmix_commit.3 | 35 + .../pmix/pmix3x/pmix/man/man3/pmix_finalize.3 | 45 + .../mca/pmix/pmix3x/pmix/man/man3/pmix_init.3 | 52 + .../pmix3x/pmix/man/man3/pmix_initialized.3 | 30 + opal/mca/pmix/pmix3x/pmix/man/man3/pmix_put.3 | 60 + opal/mca/pmix/pmix3x/pmix/man/man7/pmix.7 | 35 + .../pmix3x/pmix/man/man7/pmix_constants.7 | 79 + opal/mca/pmix/pmix3x/pmix/src/Makefile.am | 83 + .../pmix3x/pmix/src/buffer_ops/Makefile.am | 36 + .../pmix3x/pmix/src/buffer_ops/buffer_ops.h | 315 + .../pmix/pmix3x/pmix/src/buffer_ops/copy.c | 1456 +++ .../pmix3x/pmix/src/buffer_ops/internal.h | 556 ++ .../pmix/src/buffer_ops/internal_functions.c | 122 + .../pmix3x/pmix/src/buffer_ops/open_close.c | 665 ++ .../pmix/pmix3x/pmix/src/buffer_ops/pack.c | 1088 +++ .../pmix/pmix3x/pmix/src/buffer_ops/print.c | 1589 +++ .../pmix/pmix3x/pmix/src/buffer_ops/types.h | 105 + .../pmix/pmix3x/pmix/src/buffer_ops/unpack.c | 1472 +++ .../pmix3x/pmix/src/class/Makefile.include | 42 + .../pmix3x/pmix/src/class/pmix_hash_table.c | 796 ++ .../pmix3x/pmix/src/class/pmix_hash_table.h | 399 + .../pmix/pmix3x/pmix/src/class/pmix_hotel.c | 136 + .../pmix/pmix3x/pmix/src/class/pmix_hotel.h | 354 + .../pmix/pmix3x/pmix/src/class/pmix_list.c | 259 + .../pmix/pmix3x/pmix/src/class/pmix_list.h | 909 ++ .../pmix/pmix3x/pmix/src/class/pmix_object.c | 203 + .../pmix/pmix3x/pmix/src/class/pmix_object.h | 501 + .../pmix/src/class/pmix_pointer_array.c | 331 + .../pmix/src/class/pmix_pointer_array.h | 201 + .../pmix3x/pmix/src/class/pmix_ring_buffer.c | 154 + .../pmix3x/pmix/src/class/pmix_ring_buffer.h | 102 + .../pmix3x/pmix/src/class/pmix_value_array.c | 67 + .../pmix3x/pmix/src/class/pmix_value_array.h | 281 + .../pmix3x/pmix/src/client/Makefile.include | 29 + opal/mca/pmix/pmix3x/pmix/src/client/pmi1.c | 829 ++ opal/mca/pmix/pmix3x/pmix/src/client/pmi2.c | 774 ++ .../pmix/pmix3x/pmix/src/client/pmix_client.c | 1252 +++ .../pmix/src/client/pmix_client_connect.c | 335 + .../pmix/src/client/pmix_client_fence.c | 255 + .../pmix3x/pmix/src/client/pmix_client_get.c | 717 ++ .../pmix3x/pmix/src/client/pmix_client_ops.h | 34 + .../pmix3x/pmix/src/client/pmix_client_pub.c | 522 + .../pmix/src/client/pmix_client_spawn.c | 229 + .../pmix3x/pmix/src/common/Makefile.include | 15 + .../pmix/pmix3x/pmix/src/common/pmix_log.c | 131 + .../pmix/pmix3x/pmix/src/common/pmix_query.c | 156 + .../pmix3x/pmix/src/common/pmix_strings.c | 207 + .../pmix3x/pmix/src/dstore/Makefile.include | 16 + .../pmix/pmix3x/pmix/src/dstore/pmix_dstore.c | 101 + .../pmix/pmix3x/pmix/src/dstore/pmix_dstore.h | 137 + .../pmix/pmix3x/pmix/src/dstore/pmix_esh.c | 2306 +++++ .../pmix/pmix3x/pmix/src/dstore/pmix_esh.h | 111 + .../pmix3x/pmix/src/event/Makefile.include | 16 + .../pmix/pmix3x/pmix/src/event/pmix_event.h | 138 + .../pmix/src/event/pmix_event_notification.c | 670 ++ .../pmix/src/event/pmix_event_registration.c | 595 ++ .../pmix3x/pmix/src/include/Makefile.include | 47 + opal/mca/pmix/pmix3x/pmix/src/include/align.h | 29 + .../pmix3x/pmix/src/include/hash_string.h | 69 + .../pmix/src/include/pmix_config_bottom.h | 581 ++ .../pmix3x/pmix/src/include/pmix_config_top.h | 40 + .../pmix3x/pmix/src/include/pmix_globals.c | 208 + .../pmix3x/pmix/src/include/pmix_globals.h | 367 + .../pmix/src/include/pmix_socket_errno.h | 26 + .../pmix3x/pmix/src/include/pmix_stdint.h | 327 + .../pmix/pmix3x/pmix/src/include/prefetch.h | 37 + opal/mca/pmix/pmix3x/pmix/src/include/types.h | 257 + .../pmix/pmix3x/pmix/src/mca/Makefile.include | 26 + .../pmix/pmix3x/pmix/src/mca/base/Makefile.am | 66 + opal/mca/pmix/pmix3x/pmix/src/mca/base/base.h | 246 + .../pmix/src/mca/base/help-mca-base.txt | 61 + .../pmix3x/pmix/src/mca/base/help-mca-var.txt | 139 + .../pmix/src/mca/base/pmix_mca_base_close.c | 68 + .../base/pmix_mca_base_component_compare.c | 152 + .../mca/base/pmix_mca_base_component_find.c | 389 + .../base/pmix_mca_base_component_repository.c | 572 ++ .../base/pmix_mca_base_component_repository.h | 133 + .../mca/base/pmix_mca_base_components_close.c | 94 + .../mca/base/pmix_mca_base_components_open.c | 164 + .../base/pmix_mca_base_components_register.c | 163 + .../base/pmix_mca_base_components_select.c | 147 + .../src/mca/base/pmix_mca_base_framework.c | 242 + .../src/mca/base/pmix_mca_base_framework.h | 244 + .../pmix/src/mca/base/pmix_mca_base_list.c | 65 + .../pmix/src/mca/base/pmix_mca_base_open.c | 253 + .../mca/base/pmix_mca_base_parse_paramfile.c | 85 + .../pmix/src/mca/base/pmix_mca_base_var.c | 2256 +++++ .../pmix/src/mca/base/pmix_mca_base_var.h | 740 ++ .../src/mca/base/pmix_mca_base_var_enum.c | 623 ++ .../src/mca/base/pmix_mca_base_var_enum.h | 246 + .../src/mca/base/pmix_mca_base_var_group.c | 477 + .../src/mca/base/pmix_mca_base_var_group.h | 173 + .../pmix/src/mca/base/pmix_mca_base_vari.h | 165 + opal/mca/pmix/pmix3x/pmix/src/mca/mca.h | 324 + .../pmix/pmix3x/pmix/src/mca/pdl/Makefile.am | 36 + .../pmix3x/pmix/src/mca/pdl/base/Makefile.am | 17 + .../pmix/pmix3x/pmix/src/mca/pdl/base/base.h | 105 + .../pmix/src/mca/pdl/base/pdl_base_close.c | 26 + .../pmix/src/mca/pdl/base/pdl_base_fns.c | 70 + .../pmix/src/mca/pdl/base/pdl_base_open.c | 55 + .../pmix/src/mca/pdl/base/pdl_base_select.c | 55 + .../pmix/pmix3x/pmix/src/mca/pdl/configure.m4 | 80 + opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdl.h | 186 + .../pmix/src/mca/pdl/pdlopen/Makefile.am | 23 + .../pmix/src/mca/pdl/pdlopen/configure.m4 | 58 + .../pmix/src/mca/pdl/pdlopen/pdl_pdlopen.h | 41 + .../mca/pdl/pdlopen/pdl_pdlopen_component.c | 127 + .../src/mca/pdl/pdlopen/pdl_pdlopen_module.c | 276 + .../pmix/pmix3x/pmix/src/mca/pif/Makefile.am | 28 + .../pmix3x/pmix/src/mca/pif/base/Makefile.am | 15 + .../pmix/pmix3x/pmix/src/mca/pif/base/base.h | 30 + .../src/mca/pif/base/pif_base_components.c | 104 + .../pmix/src/mca/pif/bsdx_ipv4/Makefile.am | 13 + .../pmix/src/mca/pif/bsdx_ipv4/configure.m4 | 46 + .../pmix/src/mca/pif/bsdx_ipv4/pif_bsdx.c | 193 + .../pmix/src/mca/pif/bsdx_ipv6/Makefile.am | 13 + .../pmix/src/mca/pif/bsdx_ipv6/configure.m4 | 48 + .../src/mca/pif/bsdx_ipv6/pif_bsdx_ipv6.c | 229 + .../pmix/src/mca/pif/linux_ipv6/Makefile.am | 13 + .../pmix/src/mca/pif/linux_ipv6/configure.m4 | 36 + .../src/mca/pif/linux_ipv6/pif_linux_ipv6.c | 173 + opal/mca/pmix/pmix3x/pmix/src/mca/pif/pif.h | 137 + .../pmix/src/mca/pif/posix_ipv4/Makefile.am | 13 + .../pmix/src/mca/pif/posix_ipv4/configure.m4 | 55 + .../pmix/src/mca/pif/posix_ipv4/pif_posix.c | 343 + .../pmix/src/mca/pif/solaris_ipv6/Makefile.am | 13 + .../src/mca/pif/solaris_ipv6/configure.m4 | 32 + .../mca/pif/solaris_ipv6/pif_solaris_ipv6.c | 212 + .../pmix/src/mca/pinstalldirs/Makefile.am | 30 + .../src/mca/pinstalldirs/base/Makefile.am | 16 + .../pmix/src/mca/pinstalldirs/base/base.h | 40 + .../base/pinstalldirs_base_components.c | 177 + .../base/pinstalldirs_base_expand.c | 174 + .../src/mca/pinstalldirs/config/Makefile.am | 22 + .../src/mca/pinstalldirs/config/configure.m4 | 32 + .../pinstalldirs/config/pinstall_dirs.h.in | 129 + .../config/pmix_pinstalldirs_config.c | 57 + .../pmix/src/mca/pinstalldirs/configure.m4 | 12 + .../pmix/src/mca/pinstalldirs/env/Makefile.am | 16 + .../src/mca/pinstalldirs/env/configure.m4 | 30 + .../pinstalldirs/env/pmix_pinstalldirs_env.c | 84 + .../pmix/src/mca/pinstalldirs/pinstalldirs.h | 98 + .../pmix/pmix3x/pmix/src/mca/psec/Makefile.am | 44 + .../pmix/src/mca/psec/base/Makefile.include | 32 + .../pmix/pmix3x/pmix/src/mca/psec/base/base.h | 85 + .../pmix/src/mca/psec/base/psec_base_fns.c | 82 + .../pmix/src/mca/psec/base/psec_base_frame.c | 86 + .../pmix/src/mca/psec/base/psec_base_select.c | 112 + .../pmix/src/mca/psec/munge/Makefile.am | 50 + .../pmix/src/mca/psec/munge/configure.m4 | 88 + .../pmix/src/mca/psec/munge/psec_munge.c | 144 + .../pmix/src/mca/psec/munge/psec_munge.h | 25 + .../src/mca/psec/munge/psec_munge_component.c | 91 + .../pmix/src/mca/psec/native/Makefile.am | 50 + .../pmix/src/mca/psec/native/psec_native.c | 125 + .../pmix/src/mca/psec/native/psec_native.h | 27 + .../mca/psec/native/psec_native_component.c | 91 + opal/mca/pmix/pmix3x/pmix/src/mca/psec/psec.h | 141 + .../pmix3x/pmix/src/runtime/Makefile.include | 36 + .../pmix/src/runtime/help-pmix-runtime.txt | 68 + .../pmix3x/pmix/src/runtime/pmix_finalize.c | 132 + .../pmix/pmix3x/pmix/src/runtime/pmix_init.c | 255 + .../pmix3x/pmix/src/runtime/pmix_params.c | 112 + .../pmix/src/runtime/pmix_progress_threads.c | 365 + .../pmix/src/runtime/pmix_progress_threads.h | 79 + .../pmix/pmix3x/pmix/src/runtime/pmix_rte.h | 77 + .../pmix3x/pmix/src/server/Makefile.include | 24 + .../pmix/src/server/help-pmix-server.txt | 38 + .../pmix/pmix3x/pmix/src/server/pmix_server.c | 2373 +++++ .../pmix3x/pmix/src/server/pmix_server_get.c | 665 ++ .../pmix/src/server/pmix_server_listener.c | 973 ++ .../pmix3x/pmix/src/server/pmix_server_ops.c | 1667 ++++ .../pmix3x/pmix/src/server/pmix_server_ops.h | 313 + .../pmix/src/server/pmix_server_regex.c | 553 ++ .../pmix/pmix3x/pmix/src/sm/Makefile.include | 17 + opal/mca/pmix/pmix3x/pmix/src/sm/pmix_mmap.c | 161 + opal/mca/pmix/pmix3x/pmix/src/sm/pmix_mmap.h | 25 + opal/mca/pmix/pmix3x/pmix/src/sm/pmix_sm.c | 82 + opal/mca/pmix/pmix3x/pmix/src/sm/pmix_sm.h | 121 + .../pmix3x/pmix/src/tool/Makefile.include | 11 + .../mca/pmix/pmix3x/pmix/src/tool/pmix_tool.c | 906 ++ .../pmix/pmix3x/pmix/src/usock/Makefile.am | 17 + opal/mca/pmix/pmix3x/pmix/src/usock/usock.c | 348 + opal/mca/pmix/pmix3x/pmix/src/usock/usock.h | 199 + .../pmix3x/pmix/src/usock/usock_sendrecv.c | 561 ++ .../pmix3x/pmix/src/util/Makefile.include | 75 + opal/mca/pmix/pmix3x/pmix/src/util/argv.c | 588 ++ opal/mca/pmix/pmix3x/pmix/src/util/argv.h | 306 + opal/mca/pmix/pmix3x/pmix/src/util/basename.c | 139 + opal/mca/pmix/pmix3x/pmix/src/util/basename.h | 114 + opal/mca/pmix/pmix3x/pmix/src/util/crc.c | 1206 +++ opal/mca/pmix/pmix3x/pmix/src/util/crc.h | 186 + opal/mca/pmix/pmix3x/pmix/src/util/error.c | 155 + opal/mca/pmix/pmix3x/pmix/src/util/error.h | 76 + opal/mca/pmix/pmix3x/pmix/src/util/fd.c | 95 + opal/mca/pmix/pmix3x/pmix/src/util/fd.h | 72 + opal/mca/pmix/pmix3x/pmix/src/util/getid.c | 86 + opal/mca/pmix/pmix3x/pmix/src/util/getid.h | 31 + opal/mca/pmix/pmix3x/pmix/src/util/hash.c | 335 + opal/mca/pmix/pmix3x/pmix/src/util/hash.h | 55 + .../pmix3x/pmix/src/util/keyval/Makefile.am | 32 + .../pmix3x/pmix/src/util/keyval/keyval_lex.h | 74 + .../pmix3x/pmix/src/util/keyval/keyval_lex.l | 137 + .../pmix/pmix3x/pmix/src/util/keyval_parse.c | 363 + .../pmix/pmix3x/pmix/src/util/keyval_parse.h | 60 + opal/mca/pmix/pmix3x/pmix/src/util/net.c | 486 + opal/mca/pmix/pmix3x/pmix/src/util/net.h | 150 + opal/mca/pmix/pmix3x/pmix/src/util/os_path.c | 106 + opal/mca/pmix/pmix3x/pmix/src/util/os_path.h | 78 + opal/mca/pmix/pmix3x/pmix/src/util/output.c | 994 ++ opal/mca/pmix/pmix3x/pmix/src/util/output.h | 570 ++ opal/mca/pmix/pmix3x/pmix/src/util/path.c | 717 ++ opal/mca/pmix/pmix3x/pmix/src/util/path.h | 162 + opal/mca/pmix/pmix3x/pmix/src/util/pif.c | 898 ++ opal/mca/pmix/pmix3x/pmix/src/util/pif.h | 231 + .../pmix/pmix3x/pmix/src/util/pmix_environ.c | 240 + .../pmix/pmix3x/pmix/src/util/pmix_environ.h | 151 + opal/mca/pmix/pmix3x/pmix/src/util/printf.c | 323 + opal/mca/pmix/pmix3x/pmix/src/util/printf.h | 132 + .../mca/pmix/pmix3x/pmix/src/util/show_help.c | 370 + .../mca/pmix/pmix3x/pmix/src/util/show_help.h | 177 + .../pmix/pmix3x/pmix/src/util/show_help_lex.h | 67 + .../pmix/pmix3x/pmix/src/util/show_help_lex.l | 114 + opal/mca/pmix/pmix3x/pmix/src/util/strnlen.h | 38 + opal/mca/pmix/pmix3x/pmix/src/util/timings.c | 645 ++ opal/mca/pmix/pmix3x/pmix/src/util/timings.h | 421 + opal/mca/pmix/pmix3x/pmix/src/util/tsd.h | 172 + opal/mca/pmix/pmix3x/pmix/test/Makefile.am | 68 + opal/mca/pmix/pmix3x/pmix/test/README | 32 + opal/mca/pmix/pmix3x/pmix/test/cli_stages.c | 277 + opal/mca/pmix/pmix3x/pmix/test/cli_stages.h | 79 + opal/mca/pmix/pmix3x/pmix/test/pmi2_client.c | 535 ++ opal/mca/pmix/pmix3x/pmix/test/pmi_client.c | 401 + opal/mca/pmix/pmix3x/pmix/test/pmix_client.c | 217 + .../pmix3x/pmix/test/pmix_client_otheruser.sh | 19 + opal/mca/pmix/pmix3x/pmix/test/pmix_regex.c | 90 + opal/mca/pmix/pmix3x/pmix/test/pmix_test.c | 206 + .../pmix/pmix3x/pmix/test/server_callbacks.c | 348 + .../pmix/pmix3x/pmix/test/server_callbacks.h | 60 + .../pmix/pmix3x/pmix/test/simple/Makefile.am | 72 + .../pmix/pmix3x/pmix/test/simple/simpclient.c | 264 + .../pmix/pmix3x/pmix/test/simple/simpdmodex.c | 212 + .../pmix/pmix3x/pmix/test/simple/simpdyn.c | 198 + .../mca/pmix/pmix3x/pmix/test/simple/simpft.c | 138 + .../pmix/pmix3x/pmix/test/simple/simppub.c | 169 + .../pmix/pmix3x/pmix/test/simple/simptest.c | 810 ++ .../pmix/pmix3x/pmix/test/simple/simptool.c | 117 + .../pmix/pmix3x/pmix/test/simple/test_pmix.c | 67 + opal/mca/pmix/pmix3x/pmix/test/test_cd.c | 88 + opal/mca/pmix/pmix3x/pmix/test/test_cd.h | 17 + opal/mca/pmix/pmix3x/pmix/test/test_common.c | 543 ++ opal/mca/pmix/pmix3x/pmix/test/test_common.h | 199 + opal/mca/pmix/pmix3x/pmix/test/test_error.c | 115 + opal/mca/pmix/pmix3x/pmix/test/test_error.h | 16 + opal/mca/pmix/pmix3x/pmix/test/test_fence.c | 557 ++ opal/mca/pmix/pmix3x/pmix/test/test_fence.h | 20 + opal/mca/pmix/pmix3x/pmix/test/test_publish.c | 196 + opal/mca/pmix/pmix3x/pmix/test/test_publish.h | 18 + .../pmix3x/pmix/test/test_resolve_peers.c | 125 + .../pmix3x/pmix/test/test_resolve_peers.h | 18 + opal/mca/pmix/pmix3x/pmix/test/test_spawn.c | 80 + opal/mca/pmix/pmix3x/pmix/test/test_spawn.h | 18 + opal/mca/pmix/pmix3x/pmix/test/utils.c | 253 + opal/mca/pmix/pmix3x/pmix/test/utils.h | 22 + opal/mca/pmix/pmix3x/pmix3x.c | 1489 +++ opal/mca/pmix/pmix3x/pmix3x.h | 323 + opal/mca/pmix/pmix3x/pmix3x_client.c | 1285 +++ opal/mca/pmix/pmix3x/pmix3x_component.c | 131 + opal/mca/pmix/pmix3x/pmix3x_server_north.c | 1047 ++ opal/mca/pmix/pmix3x/pmix3x_server_south.c | 532 ++ opal/mca/pmix/pmix_server.h | 257 + opal/mca/pmix/pmix_types.h | 426 + opal/mca/pmix/s1/Makefile.am | 38 + opal/mca/pmix/s1/configure.m4 | 27 + opal/mca/pmix/s1/owner.txt | 7 + opal/mca/pmix/s1/pmix_s1.c | 750 ++ opal/mca/pmix/s1/pmix_s1.h | 31 + opal/mca/pmix/s1/pmix_s1_component.c | 105 + opal/mca/pmix/s2/Makefile.am | 40 + opal/mca/pmix/s2/configure.m4 | 27 + opal/mca/pmix/s2/owner.txt | 7 + opal/mca/pmix/s2/pmi2_pmap_parser.c | 241 + opal/mca/pmix/s2/pmi2_pmap_parser.h | 18 + opal/mca/pmix/s2/pmix_s2.c | 763 ++ opal/mca/pmix/s2/pmix_s2.h | 31 + opal/mca/pmix/s2/pmix_s2_component.c | 105 + opal/mca/pstat/Makefile.am | 37 + opal/mca/pstat/base/Makefile.am | 24 + opal/mca/pstat/base/base.h | 58 + opal/mca/pstat/base/pstat_base_open.c | 88 + opal/mca/pstat/base/pstat_base_select.c | 67 + opal/mca/pstat/configure.m4 | 13 + opal/mca/pstat/linux/Makefile.am | 44 + opal/mca/pstat/linux/configure.m4 | 48 + opal/mca/pstat/linux/owner.txt | 7 + opal/mca/pstat/linux/pstat_linux.h | 48 + opal/mca/pstat/linux/pstat_linux_component.c | 80 + opal/mca/pstat/linux/pstat_linux_module.c | 578 ++ opal/mca/pstat/pstat.h | 93 + opal/mca/pstat/test/Makefile.am | 44 + opal/mca/pstat/test/configure.m4 | 32 + opal/mca/pstat/test/owner.txt | 7 + opal/mca/pstat/test/pstat_test.c | 124 + opal/mca/pstat/test/pstat_test.h | 40 + opal/mca/pstat/test/pstat_test_component.c | 85 + opal/mca/rcache/Makefile.am | 37 + opal/mca/rcache/base/Makefile.am | 36 + opal/mca/rcache/base/base.h | 71 + opal/mca/rcache/base/help-rcache-base.txt | 38 + opal/mca/rcache/base/rcache_base_create.c | 120 + opal/mca/rcache/base/rcache_base_frame.c | 127 + opal/mca/rcache/base/rcache_base_mem_cb.c | 92 + opal/mca/rcache/base/rcache_base_mem_cb.h | 38 + opal/mca/rcache/base/rcache_base_vma.c | 159 + opal/mca/rcache/base/rcache_base_vma.h | 95 + opal/mca/rcache/base/rcache_base_vma_tree.c | 652 ++ opal/mca/rcache/base/rcache_base_vma_tree.h | 117 + opal/mca/rcache/gpusm/Makefile.am | 59 + opal/mca/rcache/gpusm/configure.m4 | 27 + opal/mca/rcache/gpusm/owner.txt | 7 + opal/mca/rcache/gpusm/rcache_gpusm.h | 88 + .../mca/rcache/gpusm/rcache_gpusm_component.c | 105 + opal/mca/rcache/gpusm/rcache_gpusm_module.c | 183 + opal/mca/rcache/grdma/Makefile.am | 58 + opal/mca/rcache/grdma/owner.txt | 7 + opal/mca/rcache/grdma/rcache_grdma.h | 82 + .../mca/rcache/grdma/rcache_grdma_component.c | 140 + opal/mca/rcache/grdma/rcache_grdma_module.c | 535 ++ opal/mca/rcache/rcache.h | 203 + opal/mca/rcache/rgpusm/Makefile.am | 57 + opal/mca/rcache/rgpusm/configure.m4 | 27 + opal/mca/rcache/rgpusm/owner.txt | 7 + opal/mca/rcache/rgpusm/rcache_rgpusm.h | 105 + .../rcache/rgpusm/rcache_rgpusm_component.c | 165 + opal/mca/rcache/rgpusm/rcache_rgpusm_module.c | 621 ++ opal/mca/rcache/udreg/Makefile.am | 52 + opal/mca/rcache/udreg/configure.m4 | 48 + opal/mca/rcache/udreg/owner.txt | 7 + opal/mca/rcache/udreg/rcache_udreg.h | 83 + .../mca/rcache/udreg/rcache_udreg_component.c | 130 + opal/mca/rcache/udreg/rcache_udreg_module.c | 360 + opal/mca/reachable/Makefile.am | 32 + opal/mca/reachable/base/Makefile.am | 17 + opal/mca/reachable/base/base.h | 34 + opal/mca/reachable/base/owner.txt | 7 + .../mca/reachable/base/reachable_base_frame.c | 53 + .../reachable/base/reachable_base_select.c | 50 + opal/mca/reachable/netlink/Makefile.am | 46 + opal/mca/reachable/netlink/configure.m4 | 117 + opal/mca/reachable/netlink/libnl1_utils.h | 97 + opal/mca/reachable/netlink/libnl3_utils.h | 80 + opal/mca/reachable/netlink/libnl_utils.h | 64 + opal/mca/reachable/netlink/owner.txt | 7 + .../mca/reachable/netlink/reachable_netlink.h | 27 + .../netlink/reachable_netlink_component.c | 95 + .../netlink/reachable_netlink_module.c | 48 + .../netlink/reachable_netlink_utils_common.c | 322 + opal/mca/reachable/reachable.h | 77 + opal/mca/reachable/weighted/.opal_ignore | 0 opal/mca/reachable/weighted/Makefile.am | 34 + opal/mca/reachable/weighted/owner.txt | 7 + .../reachable/weighted/reachable_weighted.c | 273 + .../reachable/weighted/reachable_weighted.h | 41 + .../weighted/reachable_weighted_component.c | 103 + opal/mca/sec/Makefile.am | 32 + opal/mca/sec/base/Makefile.am | 17 + opal/mca/sec/base/base.h | 53 + opal/mca/sec/base/owner.txt | 7 + opal/mca/sec/base/sec_base_frame.c | 73 + opal/mca/sec/base/sec_base_select.c | 114 + opal/mca/sec/base/sec_base_stubs.c | 168 + opal/mca/sec/basic/Makefile.am | 35 + opal/mca/sec/basic/owner.txt | 7 + opal/mca/sec/basic/sec_basic.c | 84 + opal/mca/sec/basic/sec_basic.h | 23 + opal/mca/sec/basic/sec_basic_component.c | 67 + opal/mca/sec/keystone/Makefile.am | 34 + opal/mca/sec/keystone/configure.m4 | 47 + opal/mca/sec/keystone/owner.txt | 7 + opal/mca/sec/keystone/sec_keystone.c | 101 + opal/mca/sec/keystone/sec_keystone.h | 27 + .../mca/sec/keystone/sec_keystone_component.c | 95 + opal/mca/sec/munge/Makefile.am | 38 + opal/mca/sec/munge/configure.m4 | 88 + opal/mca/sec/munge/owner.txt | 7 + opal/mca/sec/munge/sec_munge.c | 126 + opal/mca/sec/munge/sec_munge.h | 23 + opal/mca/sec/munge/sec_munge_component.c | 64 + opal/mca/sec/sec.h | 140 + opal/mca/shmem/Makefile.am | 39 + opal/mca/shmem/base/Makefile.am | 28 + opal/mca/shmem/base/base.h | 146 + opal/mca/shmem/base/owner.txt | 7 + opal/mca/shmem/base/shmem_base_close.c | 48 + opal/mca/shmem/base/shmem_base_open.c | 74 + opal/mca/shmem/base/shmem_base_select.c | 213 + opal/mca/shmem/base/shmem_base_wrappers.c | 85 + opal/mca/shmem/mmap/Makefile.am | 49 + opal/mca/shmem/mmap/configure.m4 | 52 + opal/mca/shmem/mmap/help-opal-shmem-mmap.txt | 53 + opal/mca/shmem/mmap/owner.txt | 7 + opal/mca/shmem/mmap/shmem_mmap.h | 56 + opal/mca/shmem/mmap/shmem_mmap_component.c | 190 + opal/mca/shmem/mmap/shmem_mmap_module.c | 608 ++ opal/mca/shmem/posix/Makefile.am | 50 + opal/mca/shmem/posix/configure.m4 | 52 + .../mca/shmem/posix/help-opal-shmem-posix.txt | 22 + opal/mca/shmem/posix/owner.txt | 7 + opal/mca/shmem/posix/shmem_posix.h | 67 + .../shmem/posix/shmem_posix_common_utils.c | 113 + .../shmem/posix/shmem_posix_common_utils.h | 50 + opal/mca/shmem/posix/shmem_posix_component.c | 207 + opal/mca/shmem/posix/shmem_posix_module.c | 420 + opal/mca/shmem/shmem.h | 190 + opal/mca/shmem/shmem_types.h | 149 + opal/mca/shmem/sysv/Makefile.am | 48 + opal/mca/shmem/sysv/configure.m4 | 52 + opal/mca/shmem/sysv/help-opal-shmem-sysv.txt | 22 + opal/mca/shmem/sysv/owner.txt | 7 + opal/mca/shmem/sysv/shmem_sysv.h | 52 + opal/mca/shmem/sysv/shmem_sysv_component.c | 217 + opal/mca/shmem/sysv/shmem_sysv_module.c | 374 + opal/mca/timer/Makefile.am | 39 + opal/mca/timer/altix/Makefile.am | 24 + opal/mca/timer/altix/configure.m4 | 83 + opal/mca/timer/altix/owner.txt | 7 + opal/mca/timer/altix/timer_altix.h | 54 + opal/mca/timer/altix/timer_altix_component.c | 112 + opal/mca/timer/base/Makefile.am | 24 + opal/mca/timer/base/base.h | 50 + opal/mca/timer/base/owner.txt | 7 + opal/mca/timer/base/timer_base_null.h | 50 + opal/mca/timer/base/timer_base_open.c | 52 + opal/mca/timer/configure.m4 | 43 + opal/mca/timer/darwin/Makefile.am | 24 + opal/mca/timer/darwin/configure.m4 | 61 + opal/mca/timer/darwin/owner.txt | 7 + opal/mca/timer/darwin/timer_darwin.h | 76 + .../mca/timer/darwin/timer_darwin_component.c | 97 + opal/mca/timer/linux/Makefile.am | 26 + opal/mca/timer/linux/configure.m4 | 68 + .../mca/timer/linux/help-opal-timer-linux.txt | 17 + opal/mca/timer/linux/owner.txt | 7 + opal/mca/timer/linux/timer_linux.h | 37 + opal/mca/timer/linux/timer_linux_component.c | 234 + opal/mca/timer/solaris/Makefile.am | 24 + opal/mca/timer/solaris/configure.m4 | 60 + opal/mca/timer/solaris/owner.txt | 7 + opal/mca/timer/solaris/timer_solaris.h | 52 + .../timer/solaris/timer_solaris_component.c | 43 + opal/mca/timer/timer.h | 96 + opal/memoryhooks/Makefile.am | 28 + opal/memoryhooks/memory.c | 228 + opal/memoryhooks/memory.h | 162 + opal/memoryhooks/memory_internal.h | 42 + opal/runtime/Makefile.am | 48 + opal/runtime/help-opal-runtime.txt | 68 + opal/runtime/help-opal_info.txt | 65 + opal/runtime/opal.h | 136 + opal/runtime/opal_cr.c | 1449 +++ opal/runtime/opal_cr.h | 418 + opal/runtime/opal_finalize.c | 192 + opal/runtime/opal_info_support.c | 1247 +++ opal/runtime/opal_info_support.h | 117 + opal/runtime/opal_init.c | 711 ++ opal/runtime/opal_params.c | 375 + opal/runtime/opal_params.h | 84 + opal/runtime/opal_progress.c | 481 + opal/runtime/opal_progress.h | 204 + opal/runtime/opal_progress_threads.c | 295 + opal/runtime/opal_progress_threads.h | 70 + opal/threads/Makefile.am | 39 + opal/threads/condition.c | 38 + opal/threads/condition.h | 145 + opal/threads/mutex.c | 99 + opal/threads/mutex.h | 192 + opal/threads/mutex_unix.h | 214 + opal/threads/thread.c | 85 + opal/threads/thread_usage.h | 191 + opal/threads/threads.h | 126 + opal/threads/tsd.h | 171 + opal/threads/wait_sync.c | 102 + opal/threads/wait_sync.h | 125 + opal/tools/Makefile.am | 35 + opal/tools/opal-checkpoint/Makefile.am | 49 + .../opal-checkpoint/help-opal-checkpoint.txt | 63 + .../tools/opal-checkpoint/opal-checkpoint.1in | 104 + opal/tools/opal-checkpoint/opal-checkpoint.c | 632 ++ opal/tools/opal-restart/Makefile.am | 49 + opal/tools/opal-restart/help-opal-restart.txt | 69 + opal/tools/opal-restart/opal-restart.1in | 130 + opal/tools/opal-restart/opal-restart.c | 738 ++ opal/tools/wrappers/Makefile.am | 81 + opal/tools/wrappers/generic_wrapper.1in | 265 + opal/tools/wrappers/help-opal-wrapper.txt | 81 + opal/tools/wrappers/opal.pc.in | 25 + opal/tools/wrappers/opal_wrapper.1in | 78 + opal/tools/wrappers/opal_wrapper.c | 952 ++ .../wrappers/opalc++-wrapper-data.txt.in | 25 + .../tools/wrappers/opalcc-wrapper-data.txt.in | 25 + opal/util/Makefile.am | 127 + opal/util/alfg.c | 135 + opal/util/alfg.h | 37 + opal/util/arch.c | 177 + opal/util/arch.h | 248 + opal/util/argv.c | 582 ++ opal/util/argv.h | 299 + opal/util/basename.c | 142 + opal/util/basename.h | 112 + opal/util/bit_ops.h | 162 + opal/util/cmd_line.c | 1312 +++ opal/util/cmd_line.h | 591 ++ opal/util/crc.c | 1199 +++ opal/util/crc.h | 184 + opal/util/daemon_init.c | 91 + opal/util/daemon_init.h | 44 + opal/util/error.c | 210 + opal/util/error.h | 94 + opal/util/ethtool.c | 91 + opal/util/ethtool.h | 20 + opal/util/fd.c | 91 + opal/util/fd.h | 68 + opal/util/few.c | 83 + opal/util/few.h | 59 + opal/util/help-opal-util.txt | 95 + opal/util/if.c | 911 ++ opal/util/if.h | 231 + opal/util/keyval/Makefile.am | 34 + opal/util/keyval/keyval_lex.h | 73 + opal/util/keyval/keyval_lex.l | 137 + opal/util/keyval_parse.c | 371 + opal/util/keyval_parse.h | 59 + opal/util/malloc.c | 192 + opal/util/malloc.h | 145 + opal/util/net.c | 499 + opal/util/net.h | 149 + opal/util/numtostr.c | 65 + opal/util/numtostr.h | 45 + opal/util/opal_environ.c | 267 + opal/util/opal_environ.h | 144 + opal/util/opal_getcwd.c | 102 + opal/util/opal_getcwd.h | 50 + opal/util/opal_pty.c | 258 + opal/util/opal_pty.h | 54 + opal/util/os_dirpath.c | 314 + opal/util/os_dirpath.h | 118 + opal/util/os_path.c | 104 + opal/util/os_path.h | 76 + opal/util/output.c | 991 ++ opal/util/output.h | 557 ++ opal/util/path.c | 714 ++ opal/util/path.h | 161 + opal/util/printf.c | 330 + opal/util/printf.h | 130 + opal/util/proc.c | 212 + opal/util/proc.h | 156 + opal/util/qsort.c | 178 + opal/util/qsort.h | 38 + opal/util/show_help.c | 369 + opal/util/show_help.h | 176 + opal/util/show_help_lex.h | 66 + opal/util/show_help_lex.l | 113 + opal/util/stacktrace.c | 506 + opal/util/stacktrace.h | 51 + opal/util/strncpy.c | 63 + opal/util/strncpy.h | 42 + opal/util/sys_limits.c | 247 + opal/util/sys_limits.h | 61 + opal/util/timings.c | 761 ++ opal/util/timings.h | 451 + opal/util/uri.c | 163 + opal/util/uri.h | 90 + opal/win32/opal_inet.c | 113 + opal/win32/opal_inet.h | 36 + opal/win32/opal_misc.h | 111 + opal/win32/opal_process.c | 40 + opal/win32/opal_process.h | 36 + opal/win32/opal_socket.c | 115 + opal/win32/opal_socket.h | 27 + opal/win32/opal_time.c | 54 + opal/win32/opal_time.h | 184 + opal/win32/opal_uio.c | 56 + opal/win32/opal_uio.h | 56 + opal/win32/opal_util.h | 30 + opal/win32/opal_utsname.c | 86 + opal/win32/opal_utsname.h | 38 + opal/win32/win_compat.h | 337 + opal/win_makefile | 252 + orte/Doxyfile | 1099 +++ orte/Makefile.am | 68 + orte/bindings/README | 21 + orte/bindings/python/README | 49 + orte/bindings/python/examples/submit.py | 68 + orte/bindings/python/setup.py | 16 + orte/bindings/python/src/orte-cffi/build.py | 140 + orte/common_sym_whitelist.txt | 4 + orte/etc/Makefile.am | 62 + orte/etc/openmpi-default-hostfile | 36 + orte/include/Makefile.am | 33 + orte/include/orte/Makefile.am | 28 + orte/include/orte/constants.h | 166 + orte/include/orte/types.h | 191 + orte/include/orte/version.h.in | 39 + orte/include/orte_config.h | 39 + orte/mca/Makefile.am | 23 + orte/mca/common/Makefile.am | 25 + orte/mca/common/alps/Makefile.am | 66 + orte/mca/common/alps/common_alps.c | 73 + orte/mca/common/alps/common_alps.h | 32 + orte/mca/common/alps/configure.m4 | 40 + orte/mca/common/alps/owner.txt | 7 + orte/mca/dfs/Makefile.am | 27 + orte/mca/dfs/app/Makefile.am | 34 + orte/mca/dfs/app/dfs_app.c | 1301 +++ orte/mca/dfs/app/dfs_app.h | 35 + orte/mca/dfs/app/dfs_app_component.c | 84 + orte/mca/dfs/app/owner.txt | 7 + orte/mca/dfs/base/Makefile.am | 15 + orte/mca/dfs/base/base.h | 89 + orte/mca/dfs/base/dfs_base_frame.c | 163 + orte/mca/dfs/base/dfs_base_select.c | 56 + orte/mca/dfs/base/owner.txt | 7 + orte/mca/dfs/dfs.h | 184 + orte/mca/dfs/dfs_types.h | 76 + orte/mca/dfs/orted/Makefile.am | 34 + orte/mca/dfs/orted/dfs_orted.c | 2371 +++++ orte/mca/dfs/orted/dfs_orted.h | 38 + orte/mca/dfs/orted/dfs_orted_component.c | 101 + orte/mca/dfs/orted/owner.txt | 7 + orte/mca/dfs/test/Makefile.am | 34 + orte/mca/dfs/test/dfs_test.c | 1135 +++ orte/mca/dfs/test/dfs_test.h | 35 + orte/mca/dfs/test/dfs_test_component.c | 100 + orte/mca/errmgr/Makefile.am | 40 + orte/mca/errmgr/base/Makefile.am | 30 + orte/mca/errmgr/base/base.h | 98 + orte/mca/errmgr/base/errmgr_base_fns.c | 740 ++ orte/mca/errmgr/base/errmgr_base_frame.c | 124 + orte/mca/errmgr/base/errmgr_base_select.c | 67 + orte/mca/errmgr/base/errmgr_base_tool.c | 441 + orte/mca/errmgr/base/errmgr_private.h | 86 + orte/mca/errmgr/base/help-errmgr-base.txt | 71 + orte/mca/errmgr/base/owner.txt | 7 + orte/mca/errmgr/default_app/Makefile.am | 34 + .../errmgr/default_app/errmgr_default_app.c | 202 + .../errmgr/default_app/errmgr_default_app.h | 35 + .../errmgr_default_app_component.c | 100 + orte/mca/errmgr/default_app/owner.txt | 7 + orte/mca/errmgr/default_hnp/Makefile.am | 34 + .../errmgr/default_hnp/errmgr_default_hnp.c | 761 ++ .../errmgr/default_hnp/errmgr_default_hnp.h | 38 + .../errmgr_default_hnp_component.c | 101 + orte/mca/errmgr/default_hnp/owner.txt | 7 + orte/mca/errmgr/default_orted/Makefile.am | 34 + .../default_orted/errmgr_default_orted.c | 771 ++ .../default_orted/errmgr_default_orted.h | 35 + .../errmgr_default_orted_component.c | 102 + orte/mca/errmgr/default_orted/owner.txt | 7 + orte/mca/errmgr/default_tool/Makefile.am | 34 + .../errmgr/default_tool/errmgr_default_tool.c | 124 + .../errmgr/default_tool/errmgr_default_tool.h | 35 + .../errmgr_default_tool_component.c | 97 + orte/mca/errmgr/default_tool/owner.txt | 7 + orte/mca/errmgr/dvm/Makefile.am | 35 + orte/mca/errmgr/dvm/errmgr_dvm.c | 704 ++ orte/mca/errmgr/dvm/errmgr_dvm.h | 39 + orte/mca/errmgr/dvm/errmgr_dvm_component.c | 102 + orte/mca/errmgr/dvm/owner.txt | 7 + orte/mca/errmgr/errmgr.h | 323 + orte/mca/ess/Makefile.am | 42 + orte/mca/ess/alps/Makefile.am | 51 + orte/mca/ess/alps/configure.m4 | 37 + orte/mca/ess/alps/ess_alps.h | 56 + orte/mca/ess/alps/ess_alps_component.c | 107 + orte/mca/ess/alps/ess_alps_module.c | 216 + orte/mca/ess/alps/ess_alps_utils.c | 241 + orte/mca/ess/alps/owner.txt | 7 + orte/mca/ess/base/Makefile.am | 35 + orte/mca/ess/base/base.h | 87 + orte/mca/ess/base/ess_base_fns.c | 313 + orte/mca/ess/base/ess_base_frame.c | 116 + orte/mca/ess/base/ess_base_get.c | 48 + orte/mca/ess/base/ess_base_select.c | 53 + orte/mca/ess/base/ess_base_std_app.c | 396 + orte/mca/ess/base/ess_base_std_orted.c | 691 ++ orte/mca/ess/base/ess_base_std_prolog.c | 68 + orte/mca/ess/base/ess_base_std_tool.c | 247 + orte/mca/ess/base/help-ess-base.txt | 34 + orte/mca/ess/base/owner.txt | 7 + orte/mca/ess/env/Makefile.am | 44 + orte/mca/ess/env/ess_env.h | 36 + orte/mca/ess/env/ess_env_component.c | 92 + orte/mca/ess/env/ess_env_module.c | 385 + orte/mca/ess/env/owner.txt | 7 + orte/mca/ess/ess.h | 112 + orte/mca/ess/hnp/Makefile.am | 44 + orte/mca/ess/hnp/ess_hnp.h | 36 + orte/mca/ess/hnp/ess_hnp_component.c | 94 + orte/mca/ess/hnp/ess_hnp_module.c | 991 ++ orte/mca/ess/hnp/owner.txt | 7 + orte/mca/ess/lsf/Makefile.am | 48 + orte/mca/ess/lsf/configure.m4 | 40 + orte/mca/ess/lsf/ess_lsf.h | 36 + orte/mca/ess/lsf/ess_lsf_component.c | 93 + orte/mca/ess/lsf/ess_lsf_module.c | 202 + orte/mca/ess/lsf/owner.txt | 7 + orte/mca/ess/pmi/Makefile.am | 41 + orte/mca/ess/pmi/ess_pmi.h | 19 + orte/mca/ess/pmi/ess_pmi_component.c | 98 + orte/mca/ess/pmi/ess_pmi_module.c | 575 ++ orte/mca/ess/pmi/owner.txt | 7 + orte/mca/ess/singleton/Makefile.am | 43 + orte/mca/ess/singleton/ess_singleton.h | 35 + .../ess/singleton/ess_singleton_component.c | 145 + orte/mca/ess/singleton/ess_singleton_module.c | 651 ++ orte/mca/ess/singleton/owner.txt | 7 + orte/mca/ess/slurm/Makefile.am | 43 + orte/mca/ess/slurm/configure.m4 | 40 + orte/mca/ess/slurm/ess_slurm.h | 35 + orte/mca/ess/slurm/ess_slurm_component.c | 98 + orte/mca/ess/slurm/ess_slurm_module.c | 214 + orte/mca/ess/slurm/owner.txt | 7 + orte/mca/ess/tm/Makefile.am | 43 + orte/mca/ess/tm/configure.m4 | 40 + orte/mca/ess/tm/ess_tm.h | 35 + orte/mca/ess/tm/ess_tm_component.c | 98 + orte/mca/ess/tm/ess_tm_module.c | 194 + orte/mca/ess/tm/owner.txt | 7 + orte/mca/ess/tool/Makefile.am | 44 + orte/mca/ess/tool/ess_tool.h | 41 + orte/mca/ess/tool/ess_tool_component.c | 114 + orte/mca/ess/tool/ess_tool_module.c | 177 + orte/mca/ess/tool/owner.txt | 7 + orte/mca/filem/Makefile.am | 50 + orte/mca/filem/base/Makefile.am | 27 + orte/mca/filem/base/base.h | 89 + orte/mca/filem/base/filem_base_fns.c | 215 + orte/mca/filem/base/filem_base_frame.c | 72 + orte/mca/filem/base/filem_base_receive.c | 319 + orte/mca/filem/base/filem_base_select.c | 64 + orte/mca/filem/base/owner.txt | 7 + orte/mca/filem/filem.h | 402 + orte/mca/filem/orte_filem.7in | 92 + orte/mca/filem/raw/Makefile.am | 46 + orte/mca/filem/raw/filem_raw.h | 80 + orte/mca/filem/raw/filem_raw_component.c | 96 + orte/mca/filem/raw/filem_raw_module.c | 1356 +++ orte/mca/filem/raw/help-orte-filem-raw.txt | 46 + orte/mca/filem/raw/owner.txt | 7 + orte/mca/grpcomm/Makefile.am | 38 + orte/mca/grpcomm/base/Makefile.am | 27 + orte/mca/grpcomm/base/base.h | 92 + orte/mca/grpcomm/base/grpcomm_base_frame.c | 145 + orte/mca/grpcomm/base/grpcomm_base_select.c | 121 + orte/mca/grpcomm/base/grpcomm_base_stubs.c | 489 + orte/mca/grpcomm/base/owner.txt | 7 + orte/mca/grpcomm/brucks/.opal_ignore | 0 orte/mca/grpcomm/brucks/Makefile.am | 39 + orte/mca/grpcomm/brucks/grpcomm_brucks.h | 31 + .../grpcomm/brucks/grpcomm_brucks_component.c | 84 + .../grpcomm/brucks/grpcomm_brucks_module.c | 388 + orte/mca/grpcomm/brucks/owner.txt | 7 + orte/mca/grpcomm/direct/Makefile.am | 39 + orte/mca/grpcomm/direct/grpcomm_direct.c | 520 + orte/mca/grpcomm/direct/grpcomm_direct.h | 31 + .../grpcomm/direct/grpcomm_direct_component.c | 85 + orte/mca/grpcomm/direct/owner.txt | 7 + orte/mca/grpcomm/grpcomm.h | 191 + orte/mca/grpcomm/rcd/.opal_ignore | 0 orte/mca/grpcomm/rcd/Makefile.am | 39 + orte/mca/grpcomm/rcd/grpcomm_rcd.c | 329 + orte/mca/grpcomm/rcd/grpcomm_rcd.h | 31 + orte/mca/grpcomm/rcd/grpcomm_rcd_component.c | 84 + orte/mca/grpcomm/rcd/owner.txt | 7 + orte/mca/iof/Makefile.am | 40 + orte/mca/iof/README.txt | 177 + orte/mca/iof/base/Makefile.am | 28 + orte/mca/iof/base/base.h | 211 + orte/mca/iof/base/iof_base_frame.c | 314 + orte/mca/iof/base/iof_base_output.c | 362 + orte/mca/iof/base/iof_base_select.c | 68 + orte/mca/iof/base/iof_base_setup.c | 350 + orte/mca/iof/base/iof_base_setup.h | 65 + orte/mca/iof/base/owner.txt | 7 + orte/mca/iof/hnp/Makefile.am | 48 + orte/mca/iof/hnp/iof_hnp.c | 601 ++ orte/mca/iof/hnp/iof_hnp.h | 88 + orte/mca/iof/hnp/iof_hnp_component.c | 104 + orte/mca/iof/hnp/iof_hnp_read.c | 301 + orte/mca/iof/hnp/iof_hnp_receive.c | 273 + orte/mca/iof/hnp/iof_hnp_send.c | 120 + orte/mca/iof/hnp/owner.txt | 7 + orte/mca/iof/iof.h | 237 + orte/mca/iof/iof_types.h | 54 + orte/mca/iof/orted/Makefile.am | 47 + orte/mca/iof/orted/iof_orted.c | 439 + orte/mca/iof/orted/iof_orted.h | 82 + orte/mca/iof/orted/iof_orted_component.c | 96 + orte/mca/iof/orted/iof_orted_read.c | 190 + orte/mca/iof/orted/iof_orted_receive.c | 164 + orte/mca/iof/orted/owner.txt | 7 + orte/mca/iof/tool/Makefile.am | 46 + orte/mca/iof/tool/iof_tool.c | 286 + orte/mca/iof/tool/iof_tool.h | 57 + orte/mca/iof/tool/iof_tool_component.c | 100 + orte/mca/iof/tool/iof_tool_receive.c | 110 + orte/mca/iof/tool/owner.txt | 7 + orte/mca/mca.h | 39 + orte/mca/notifier/Makefile.am | 39 + orte/mca/notifier/base/Makefile.am | 27 + orte/mca/notifier/base/base.h | 87 + orte/mca/notifier/base/notifier_base_fns.c | 193 + orte/mca/notifier/base/notifier_base_frame.c | 266 + orte/mca/notifier/base/notifier_base_select.c | 127 + orte/mca/notifier/notifier.h | 219 + orte/mca/notifier/smtp/.opal_ignore | 0 orte/mca/notifier/smtp/Makefile.am | 52 + orte/mca/notifier/smtp/configure.m4 | 39 + .../notifier/smtp/help-orte-notifier-smtp.txt | 33 + orte/mca/notifier/smtp/notifier_smtp.h | 68 + .../notifier/smtp/notifier_smtp_component.c | 197 + orte/mca/notifier/smtp/notifier_smtp_module.c | 324 + orte/mca/notifier/syslog/Makefile.am | 45 + orte/mca/notifier/syslog/notifier_syslog.h | 40 + .../syslog/notifier_syslog_component.c | 60 + .../notifier/syslog/notifier_syslog_module.c | 133 + orte/mca/odls/Makefile.am | 40 + orte/mca/odls/alps/Makefile.am | 55 + orte/mca/odls/alps/configure.m4 | 37 + orte/mca/odls/alps/help-orte-odls-alps.txt | 152 + orte/mca/odls/alps/odls_alps.h | 58 + orte/mca/odls/alps/odls_alps_component.c | 114 + orte/mca/odls/alps/odls_alps_module.c | 776 ++ orte/mca/odls/alps/odls_alps_utils.c | 252 + orte/mca/odls/alps/owner.txt | 7 + orte/mca/odls/base/Makefile.am | 30 + orte/mca/odls/base/base.h | 48 + orte/mca/odls/base/help-orte-odls-base.txt | 101 + orte/mca/odls/base/odls_base_default_fns.c | 1736 ++++ orte/mca/odls/base/odls_base_frame.c | 199 + orte/mca/odls/base/odls_base_select.c | 57 + orte/mca/odls/base/odls_private.h | 141 + orte/mca/odls/base/owner.txt | 7 + orte/mca/odls/default/Makefile.am | 46 + orte/mca/odls/default/configure.m4 | 33 + .../odls/default/help-orte-odls-default.txt | 138 + orte/mca/odls/default/odls_default.h | 48 + .../mca/odls/default/odls_default_component.c | 97 + orte/mca/odls/default/odls_default_module.c | 720 ++ orte/mca/odls/default/owner.txt | 7 + orte/mca/odls/odls.h | 126 + orte/mca/odls/odls_types.h | 115 + orte/mca/oob/Makefile.am | 40 + orte/mca/oob/alps/Makefile.am | 45 + orte/mca/oob/alps/configure.m4 | 37 + orte/mca/oob/alps/oob_alps_component.c | 239 + orte/mca/oob/alps/owner.txt | 7 + orte/mca/oob/base/Makefile.am | 30 + orte/mca/oob/base/base.h | 196 + orte/mca/oob/base/help-oob-base.txt | 23 + orte/mca/oob/base/oob_base_frame.c | 158 + orte/mca/oob/base/oob_base_select.c | 157 + orte/mca/oob/base/oob_base_stubs.c | 458 + orte/mca/oob/base/owner.txt | 7 + orte/mca/oob/oob.h | 92 + orte/mca/oob/tcp/Makefile.am | 62 + orte/mca/oob/tcp/configure.m4 | 38 + orte/mca/oob/tcp/help-oob-tcp.txt | 110 + orte/mca/oob/tcp/oob_tcp.c | 672 ++ orte/mca/oob/tcp/oob_tcp.h | 111 + orte/mca/oob/tcp/oob_tcp_common.c | 224 + orte/mca/oob/tcp/oob_tcp_common.h | 34 + orte/mca/oob/tcp/oob_tcp_component.c | 1381 +++ orte/mca/oob/tcp/oob_tcp_component.h | 93 + orte/mca/oob/tcp/oob_tcp_connection.c | 1182 +++ orte/mca/oob/tcp/oob_tcp_connection.h | 102 + orte/mca/oob/tcp/oob_tcp_hdr.h | 88 + orte/mca/oob/tcp/oob_tcp_listener.c | 960 ++ orte/mca/oob/tcp/oob_tcp_listener.h | 61 + orte/mca/oob/tcp/oob_tcp_peer.h | 112 + orte/mca/oob/tcp/oob_tcp_ping.h | 52 + orte/mca/oob/tcp/oob_tcp_sendrecv.c | 660 ++ orte/mca/oob/tcp/oob_tcp_sendrecv.h | 338 + orte/mca/oob/tcp/owner.txt | 7 + orte/mca/oob/ud/Makefile.am | 65 + orte/mca/oob/ud/configure.m4 | 63 + orte/mca/oob/ud/help-oob-ud.txt | 121 + orte/mca/oob/ud/oob_ud.c | 279 + orte/mca/oob/ud/oob_ud.h | 207 + orte/mca/oob/ud/oob_ud_component.c | 789 ++ orte/mca/oob/ud/oob_ud_component.h | 68 + orte/mca/oob/ud/oob_ud_event.c | 612 ++ orte/mca/oob/ud/oob_ud_peer.c | 398 + orte/mca/oob/ud/oob_ud_peer.h | 97 + orte/mca/oob/ud/oob_ud_ping.c | 70 + orte/mca/oob/ud/oob_ud_ping.h | 39 + orte/mca/oob/ud/oob_ud_qp.c | 321 + orte/mca/oob/ud/oob_ud_qp.h | 73 + orte/mca/oob/ud/oob_ud_recv.c | 539 ++ orte/mca/oob/ud/oob_ud_req.c | 420 + orte/mca/oob/ud/oob_ud_req.h | 281 + orte/mca/oob/ud/oob_ud_send.c | 543 ++ orte/mca/oob/ud/oob_ud_send.h | 55 + orte/mca/oob/ud/owner.txt | 7 + orte/mca/plm/Makefile.am | 40 + orte/mca/plm/alps/Makefile.am | 53 + orte/mca/plm/alps/configure.m4 | 37 + orte/mca/plm/alps/help-plm-alps.txt | 45 + orte/mca/plm/alps/owner.txt | 7 + orte/mca/plm/alps/plm_alps.h | 53 + orte/mca/plm/alps/plm_alps_component.c | 178 + orte/mca/plm/alps/plm_alps_module.c | 682 ++ orte/mca/plm/base/Makefile.am | 33 + orte/mca/plm/base/base.h | 71 + orte/mca/plm/base/help-plm-base.txt | 164 + orte/mca/plm/base/owner.txt | 7 + orte/mca/plm/base/plm_base_frame.c | 92 + orte/mca/plm/base/plm_base_jobid.c | 98 + orte/mca/plm/base/plm_base_launch_support.c | 2138 +++++ orte/mca/plm/base/plm_base_orted_cmds.c | 249 + orte/mca/plm/base/plm_base_receive.c | 413 + orte/mca/plm/base/plm_base_select.c | 59 + orte/mca/plm/base/plm_private.h | 126 + orte/mca/plm/isolated/Makefile.am | 45 + orte/mca/plm/isolated/configure.m4 | 32 + orte/mca/plm/isolated/owner.txt | 7 + orte/mca/plm/isolated/plm_isolated.c | 145 + orte/mca/plm/isolated/plm_isolated.h | 42 + .../mca/plm/isolated/plm_isolated_component.c | 107 + orte/mca/plm/lsf/Makefile.am | 52 + orte/mca/plm/lsf/configure.m4 | 40 + orte/mca/plm/lsf/help-plm-lsf.txt | 57 + orte/mca/plm/lsf/owner.txt | 7 + orte/mca/plm/lsf/plm_lsf.h | 43 + orte/mca/plm/lsf/plm_lsf_component.c | 119 + orte/mca/plm/lsf/plm_lsf_module.c | 418 + orte/mca/plm/plm.h | 148 + orte/mca/plm/plm_types.h | 227 + orte/mca/plm/rsh/Makefile.am | 46 + orte/mca/plm/rsh/configure.m4 | 32 + orte/mca/plm/rsh/help-plm-rsh.txt | 96 + orte/mca/plm/rsh/owner.txt | 7 + orte/mca/plm/rsh/plm_rsh.h | 78 + orte/mca/plm/rsh/plm_rsh_component.c | 451 + orte/mca/plm/rsh/plm_rsh_module.c | 1653 ++++ orte/mca/plm/slurm/Makefile.am | 46 + orte/mca/plm/slurm/configure.m4 | 49 + orte/mca/plm/slurm/help-plm-slurm.txt | 51 + orte/mca/plm/slurm/owner.txt | 7 + orte/mca/plm/slurm/plm_slurm.h | 44 + orte/mca/plm/slurm/plm_slurm_component.c | 134 + orte/mca/plm/slurm/plm_slurm_module.c | 708 ++ orte/mca/plm/tm/Makefile.am | 54 + orte/mca/plm/tm/configure.m4 | 40 + orte/mca/plm/tm/help-plm-tm.txt | 62 + orte/mca/plm/tm/owner.txt | 7 + orte/mca/plm/tm/plm_tm.h | 43 + orte/mca/plm/tm/plm_tm_component.c | 137 + orte/mca/plm/tm/plm_tm_module.c | 544 ++ orte/mca/ras/Makefile.am | 42 + orte/mca/ras/alps/Makefile.am | 62 + orte/mca/ras/alps/configure.m4 | 46 + orte/mca/ras/alps/help-ras-alps.txt | 41 + orte/mca/ras/alps/owner.txt | 7 + orte/mca/ras/alps/ras-alps-command.sh | 73 + orte/mca/ras/alps/ras_alps.h | 42 + orte/mca/ras/alps/ras_alps_component.c | 232 + orte/mca/ras/alps/ras_alps_module.c | 616 ++ orte/mca/ras/base/Makefile.am | 29 + orte/mca/ras/base/base.h | 66 + orte/mca/ras/base/help-ras-base.txt | 38 + orte/mca/ras/base/owner.txt | 7 + orte/mca/ras/base/ras_base_allocate.c | 549 ++ orte/mca/ras/base/ras_base_close.c | 54 + orte/mca/ras/base/ras_base_frame.c | 92 + orte/mca/ras/base/ras_base_node.c | 199 + orte/mca/ras/base/ras_base_select.c | 63 + orte/mca/ras/base/ras_private.h | 51 + orte/mca/ras/gridengine/Makefile.am | 48 + orte/mca/ras/gridengine/configure.m4 | 33 + .../ras/gridengine/help-ras-gridengine.txt | 44 + orte/mca/ras/gridengine/owner.txt | 7 + orte/mca/ras/gridengine/ras_gridengine.h | 51 + .../ras/gridengine/ras_gridengine_component.c | 135 + .../ras/gridengine/ras_gridengine_module.c | 207 + orte/mca/ras/loadleveler/Makefile.am | 53 + orte/mca/ras/loadleveler/configure.m4 | 40 + orte/mca/ras/loadleveler/owner.txt | 7 + orte/mca/ras/loadleveler/ras_loadleveler.h | 37 + .../loadleveler/ras_loadleveler_component.c | 105 + .../ras/loadleveler/ras_loadleveler_module.c | 191 + orte/mca/ras/lsf/Makefile.am | 50 + orte/mca/ras/lsf/configure.m4 | 40 + orte/mca/ras/lsf/help-ras-lsf.txt | 36 + orte/mca/ras/lsf/owner.txt | 7 + orte/mca/ras/lsf/ras_lsf.h | 39 + orte/mca/ras/lsf/ras_lsf_component.c | 94 + orte/mca/ras/lsf/ras_lsf_module.c | 167 + orte/mca/ras/ras.h | 142 + orte/mca/ras/simulator/Makefile.am | 40 + orte/mca/ras/simulator/help-ras-simulator.txt | 33 + orte/mca/ras/simulator/owner.txt | 7 + orte/mca/ras/simulator/ras_sim.h | 37 + orte/mca/ras/simulator/ras_sim_component.c | 138 + orte/mca/ras/simulator/ras_sim_module.c | 314 + orte/mca/ras/slurm/Makefile.am | 55 + orte/mca/ras/slurm/configure.m4 | 40 + orte/mca/ras/slurm/help-ras-slurm.txt | 78 + orte/mca/ras/slurm/owner.txt | 7 + orte/mca/ras/slurm/ras_slurm.h | 49 + orte/mca/ras/slurm/ras_slurm_component.c | 155 + orte/mca/ras/slurm/ras_slurm_module.c | 1221 +++ orte/mca/ras/tm/Makefile.am | 58 + orte/mca/ras/tm/configure.m4 | 40 + orte/mca/ras/tm/help-ras-tm.txt | 39 + orte/mca/ras/tm/owner.txt | 7 + orte/mca/ras/tm/ras_tm.h | 45 + orte/mca/ras/tm/ras_tm_component.c | 141 + orte/mca/ras/tm/ras_tm_module.c | 253 + orte/mca/rmaps/Makefile.am | 37 + orte/mca/rmaps/base/Makefile.am | 37 + orte/mca/rmaps/base/base.h | 131 + orte/mca/rmaps/base/help-orte-rmaps-base.txt | 412 + orte/mca/rmaps/base/owner.txt | 7 + orte/mca/rmaps/base/rmaps_base_binding.c | 959 ++ orte/mca/rmaps/base/rmaps_base_frame.c | 863 ++ orte/mca/rmaps/base/rmaps_base_map_job.c | 460 + orte/mca/rmaps/base/rmaps_base_print_fns.c | 224 + orte/mca/rmaps/base/rmaps_base_ranking.c | 817 ++ orte/mca/rmaps/base/rmaps_base_select.c | 113 + orte/mca/rmaps/base/rmaps_base_support_fns.c | 704 ++ orte/mca/rmaps/base/rmaps_private.h | 73 + orte/mca/rmaps/lama/.opal_ignore | 0 orte/mca/rmaps/lama/Makefile.am | 40 + orte/mca/rmaps/lama/help-orte-rmaps-lama.txt | 173 + orte/mca/rmaps/lama/owner.txt | 7 + orte/mca/rmaps/lama/rmaps_lama.h | 177 + orte/mca/rmaps/lama/rmaps_lama_component.c | 136 + orte/mca/rmaps/lama/rmaps_lama_max_tree.c | 1182 +++ orte/mca/rmaps/lama/rmaps_lama_module.c | 1914 ++++ orte/mca/rmaps/lama/rmaps_lama_params.c | 878 ++ orte/mca/rmaps/mindist/Makefile.am | 47 + orte/mca/rmaps/mindist/help-orte-rmaps-md.txt | 53 + orte/mca/rmaps/mindist/owner.txt | 7 + orte/mca/rmaps/mindist/rmaps_mindist.h | 41 + .../rmaps/mindist/rmaps_mindist_component.c | 99 + orte/mca/rmaps/mindist/rmaps_mindist_module.c | 425 + orte/mca/rmaps/ppr/Makefile.am | 36 + orte/mca/rmaps/ppr/help-orte-rmaps-ppr.txt | 66 + orte/mca/rmaps/ppr/owner.txt | 7 + orte/mca/rmaps/ppr/rmaps_ppr.c | 622 ++ orte/mca/rmaps/ppr/rmaps_ppr.h | 27 + orte/mca/rmaps/ppr/rmaps_ppr_component.c | 85 + orte/mca/rmaps/rank_file/Makefile.am | 57 + .../rmaps/rank_file/common_sym_whitelist.txt | 4 + .../rmaps/rank_file/help-rmaps_rank_file.txt | 131 + orte/mca/rmaps/rank_file/owner.txt | 7 + orte/mca/rmaps/rank_file/rmaps_rank_file.c | 588 ++ orte/mca/rmaps/rank_file/rmaps_rank_file.h | 65 + .../rank_file/rmaps_rank_file_component.c | 164 + .../mca/rmaps/rank_file/rmaps_rank_file_lex.h | 81 + .../mca/rmaps/rank_file/rmaps_rank_file_lex.l | 151 + orte/mca/rmaps/resilient/Makefile.am | 37 + .../resilient/help-orte-rmaps-resilient.txt | 28 + orte/mca/rmaps/resilient/owner.txt | 7 + orte/mca/rmaps/resilient/rmaps_resilient.c | 882 ++ orte/mca/rmaps/resilient/rmaps_resilient.h | 48 + .../resilient/rmaps_resilient_component.c | 160 + orte/mca/rmaps/rmaps.h | 107 + orte/mca/rmaps/rmaps_types.h | 172 + orte/mca/rmaps/round_robin/Makefile.am | 47 + .../rmaps/round_robin/help-orte-rmaps-rr.txt | 61 + orte/mca/rmaps/round_robin/owner.txt | 7 + orte/mca/rmaps/round_robin/rmaps_rr.c | 284 + orte/mca/rmaps/round_robin/rmaps_rr.h | 58 + .../rmaps/round_robin/rmaps_rr_component.c | 101 + orte/mca/rmaps/round_robin/rmaps_rr_mappers.c | 757 ++ orte/mca/rmaps/seq/Makefile.am | 46 + orte/mca/rmaps/seq/help-orte-rmaps-seq.txt | 34 + orte/mca/rmaps/seq/owner.txt | 7 + orte/mca/rmaps/seq/rmaps_seq.c | 541 ++ orte/mca/rmaps/seq/rmaps_seq.h | 41 + orte/mca/rmaps/seq/rmaps_seq_component.c | 97 + orte/mca/rmaps/staged/Makefile.am | 35 + orte/mca/rmaps/staged/owner.txt | 7 + orte/mca/rmaps/staged/rmaps_staged.c | 436 + orte/mca/rmaps/staged/rmaps_staged.h | 25 + .../mca/rmaps/staged/rmaps_staged_component.c | 73 + orte/mca/rml/Makefile.am | 39 + orte/mca/rml/base/Makefile.am | 31 + orte/mca/rml/base/base.h | 292 + orte/mca/rml/base/owner.txt | 7 + orte/mca/rml/base/rml_base_contact.c | 154 + orte/mca/rml/base/rml_base_frame.c | 335 + orte/mca/rml/base/rml_base_msg_handlers.c | 235 + orte/mca/rml/base/rml_base_receive.c | 127 + orte/mca/rml/base/rml_base_stubs.c | 384 + orte/mca/rml/base/rml_contact.h | 83 + orte/mca/rml/ofi/.opal_ignore | 0 orte/mca/rml/ofi/.opal_unignore | 2 + orte/mca/rml/ofi/Makefile.am | 53 + orte/mca/rml/ofi/configure.m4 | 29 + orte/mca/rml/ofi/rml_ofi.h | 205 + orte/mca/rml/ofi/rml_ofi_component.c | 1259 +++ orte/mca/rml/ofi/rml_ofi_request.h | 137 + orte/mca/rml/ofi/rml_ofi_send.c | 831 ++ orte/mca/rml/oob/Makefile.am | 46 + orte/mca/rml/oob/owner.txt | 7 + orte/mca/rml/oob/rml_oob.h | 72 + orte/mca/rml/oob/rml_oob_component.c | 303 + orte/mca/rml/oob/rml_oob_send.c | 294 + orte/mca/rml/rml.h | 594 ++ orte/mca/rml/rml_types.h | 225 + orte/mca/routed/Makefile.am | 31 + orte/mca/routed/base/Makefile.am | 16 + orte/mca/routed/base/base.h | 76 + orte/mca/routed/base/owner.txt | 7 + orte/mca/routed/base/routed_base_fns.c | 356 + orte/mca/routed/base/routed_base_frame.c | 164 + orte/mca/routed/binomial/Makefile.am | 39 + orte/mca/routed/binomial/owner.txt | 7 + orte/mca/routed/binomial/routed_binomial.c | 557 ++ orte/mca/routed/binomial/routed_binomial.h | 26 + .../binomial/routed_binomial_component.c | 54 + orte/mca/routed/debruijn/Makefile.am | 39 + orte/mca/routed/debruijn/owner.txt | 7 + orte/mca/routed/debruijn/routed_debruijn.c | 481 + orte/mca/routed/debruijn/routed_debruijn.h | 27 + .../debruijn/routed_debruijn_component.c | 60 + orte/mca/routed/direct/Makefile.am | 37 + orte/mca/routed/direct/owner.txt | 7 + orte/mca/routed/direct/routed_direct.c | 362 + orte/mca/routed/direct/routed_direct.h | 26 + .../routed/direct/routed_direct_component.c | 67 + orte/mca/routed/radix/Makefile.am | 37 + orte/mca/routed/radix/routed_radix.c | 541 ++ orte/mca/routed/radix/routed_radix.h | 31 + .../mca/routed/radix/routed_radix_component.c | 75 + orte/mca/routed/routed.h | 301 + orte/mca/routed/routed_types.h | 50 + orte/mca/rtc/Makefile.am | 27 + orte/mca/rtc/base/Makefile.am | 18 + orte/mca/rtc/base/base.h | 83 + orte/mca/rtc/base/help-orte-rtc-base.txt | 295 + orte/mca/rtc/base/owner.txt | 7 + orte/mca/rtc/base/rtc_base_frame.c | 98 + orte/mca/rtc/base/rtc_base_select.c | 113 + orte/mca/rtc/base/rtc_base_stubs.c | 139 + orte/mca/rtc/hwloc/Makefile.am | 34 + orte/mca/rtc/hwloc/owner.txt | 7 + orte/mca/rtc/hwloc/rtc_hwloc.c | 263 + orte/mca/rtc/hwloc/rtc_hwloc.h | 28 + orte/mca/rtc/hwloc/rtc_hwloc_component.c | 70 + orte/mca/rtc/rtc.h | 116 + orte/mca/schizo/Makefile.am | 30 + orte/mca/schizo/alps/Makefile.am | 35 + orte/mca/schizo/alps/configure.m4 | 47 + orte/mca/schizo/alps/owner.txt | 7 + orte/mca/schizo/alps/schizo_alps.c | 117 + orte/mca/schizo/alps/schizo_alps.h | 29 + orte/mca/schizo/alps/schizo_alps_component.c | 53 + orte/mca/schizo/base/Makefile.am | 16 + orte/mca/schizo/base/base.h | 82 + orte/mca/schizo/base/owner.txt | 7 + orte/mca/schizo/base/schizo_base_frame.c | 106 + orte/mca/schizo/base/schizo_base_select.c | 108 + orte/mca/schizo/base/schizo_base_stubs.c | 173 + orte/mca/schizo/ompi/Makefile.am | 35 + orte/mca/schizo/ompi/owner.txt | 7 + orte/mca/schizo/ompi/schizo_ompi.c | 1151 +++ orte/mca/schizo/ompi/schizo_ompi.h | 29 + orte/mca/schizo/ompi/schizo_ompi_component.c | 55 + orte/mca/schizo/orte/Makefile.am | 35 + orte/mca/schizo/orte/schizo_orte.c | 91 + orte/mca/schizo/orte/schizo_orte.h | 29 + orte/mca/schizo/orte/schizo_orte_component.c | 52 + orte/mca/schizo/schizo.h | 153 + orte/mca/schizo/singularity/Makefile.am | 35 + orte/mca/schizo/singularity/configure.m4 | 19 + orte/mca/schizo/singularity/owner.txt | 7 + .../schizo/singularity/schizo_singularity.c | 109 + .../schizo/singularity/schizo_singularity.h | 29 + .../schizo_singularity_component.c | 53 + orte/mca/schizo/slurm/Makefile.am | 35 + orte/mca/schizo/slurm/configure.m4 | 41 + orte/mca/schizo/slurm/owner.txt | 7 + orte/mca/schizo/slurm/schizo_slurm.c | 137 + orte/mca/schizo/slurm/schizo_slurm.h | 29 + .../mca/schizo/slurm/schizo_slurm_component.c | 52 + orte/mca/snapc/Makefile.am | 50 + orte/mca/snapc/base/Makefile.am | 28 + orte/mca/snapc/base/base.h | 138 + orte/mca/snapc/base/help-orte-snapc-base.txt | 25 + orte/mca/snapc/base/owner.txt | 7 + orte/mca/snapc/base/snapc_base_fns.c | 844 ++ orte/mca/snapc/base/snapc_base_frame.c | 106 + orte/mca/snapc/base/snapc_base_select.c | 105 + orte/mca/snapc/full/Makefile.am | 47 + orte/mca/snapc/full/configure.m4 | 30 + orte/mca/snapc/full/help-orte-snapc-full.txt | 37 + orte/mca/snapc/full/owner.txt | 7 + orte/mca/snapc/full/snapc_full.h | 169 + orte/mca/snapc/full/snapc_full_app.c | 1638 ++++ orte/mca/snapc/full/snapc_full_component.c | 181 + orte/mca/snapc/full/snapc_full_global.c | 2704 ++++++ orte/mca/snapc/full/snapc_full_local.c | 2083 ++++ orte/mca/snapc/full/snapc_full_module.c | 367 + orte/mca/snapc/orte_snapc.7in | 105 + orte/mca/snapc/snapc.h | 405 + orte/mca/sstore/Makefile.am | 42 + orte/mca/sstore/base/Makefile.am | 19 + orte/mca/sstore/base/base.h | 116 + orte/mca/sstore/base/owner.txt | 7 + orte/mca/sstore/base/sstore_base_fns.c | 973 ++ orte/mca/sstore/base/sstore_base_frame.c | 185 + orte/mca/sstore/base/sstore_base_select.c | 59 + orte/mca/sstore/central/Makefile.am | 40 + orte/mca/sstore/central/configure.m4 | 24 + .../central/help-orte-sstore-central.txt | 19 + orte/mca/sstore/central/owner.txt | 7 + orte/mca/sstore/central/sstore_central.h | 125 + orte/mca/sstore/central/sstore_central_app.c | 762 ++ .../sstore/central/sstore_central_component.c | 123 + .../sstore/central/sstore_central_global.c | 1216 +++ .../mca/sstore/central/sstore_central_local.c | 982 ++ .../sstore/central/sstore_central_module.c | 356 + orte/mca/sstore/orte_sstore.7in | 66 + orte/mca/sstore/sstore.h | 412 + orte/mca/sstore/stage/Makefile.am | 40 + orte/mca/sstore/stage/configure.m4 | 24 + .../sstore/stage/help-orte-sstore-stage.txt | 26 + orte/mca/sstore/stage/owner.txt | 7 + orte/mca/sstore/stage/sstore_stage.h | 145 + orte/mca/sstore/stage/sstore_stage_app.c | 742 ++ .../mca/sstore/stage/sstore_stage_component.c | 290 + orte/mca/sstore/stage/sstore_stage_global.c | 1755 ++++ orte/mca/sstore/stage/sstore_stage_local.c | 2101 ++++ orte/mca/sstore/stage/sstore_stage_module.c | 369 + orte/mca/state/Makefile.am | 31 + orte/mca/state/app/Makefile.am | 35 + orte/mca/state/app/owner.txt | 7 + orte/mca/state/app/state_app.c | 99 + orte/mca/state/app/state_app.h | 36 + orte/mca/state/app/state_app_component.c | 84 + orte/mca/state/base/Makefile.am | 18 + orte/mca/state/base/base.h | 40 + orte/mca/state/base/owner.txt | 7 + orte/mca/state/base/state_base_fns.c | 926 ++ orte/mca/state/base/state_base_frame.c | 98 + orte/mca/state/base/state_base_select.c | 56 + orte/mca/state/base/state_private.h | 81 + orte/mca/state/dvm/Makefile.am | 34 + orte/mca/state/dvm/owner.txt | 7 + orte/mca/state/dvm/state_dvm.c | 461 + orte/mca/state/dvm/state_dvm.h | 35 + orte/mca/state/dvm/state_dvm_component.c | 83 + orte/mca/state/hnp/Makefile.am | 35 + orte/mca/state/hnp/owner.txt | 7 + orte/mca/state/hnp/state_hnp.c | 199 + orte/mca/state/hnp/state_hnp.h | 36 + orte/mca/state/hnp/state_hnp_component.c | 84 + orte/mca/state/novm/Makefile.am | 35 + orte/mca/state/novm/owner.txt | 7 + orte/mca/state/novm/state_novm.c | 262 + orte/mca/state/novm/state_novm.h | 36 + orte/mca/state/novm/state_novm_component.c | 101 + orte/mca/state/orted/Makefile.am | 35 + orte/mca/state/orted/owner.txt | 7 + orte/mca/state/orted/state_orted.c | 484 + orte/mca/state/orted/state_orted.h | 36 + orte/mca/state/orted/state_orted_component.c | 84 + orte/mca/state/state.h | 286 + orte/mca/state/state_types.h | 77 + orte/mca/state/tool/Makefile.am | 34 + orte/mca/state/tool/owner.txt | 7 + orte/mca/state/tool/state_tool.c | 100 + orte/mca/state/tool/state_tool.h | 37 + orte/mca/state/tool/state_tool_component.c | 85 + orte/orted/Makefile.am | 35 + orte/orted/help-orted.txt | 62 + orte/orted/orted.h | 52 + orte/orted/orted_comm.c | 1293 +++ orte/orted/orted_main.c | 939 ++ orte/orted/orted_submit.c | 3235 +++++++ orte/orted/orted_submit.h | 107 + orte/orted/pmix/Makefile.am | 21 + orte/orted/pmix/pmix_server.c | 729 ++ orte/orted/pmix/pmix_server.h | 42 + orte/orted/pmix/pmix_server_dyn.c | 494 + orte/orted/pmix/pmix_server_fence.c | 260 + orte/orted/pmix/pmix_server_gen.c | 590 ++ orte/orted/pmix/pmix_server_internal.h | 240 + orte/orted/pmix/pmix_server_pub.c | 471 + orte/orted/pmix/pmix_server_register_fns.c | 448 + orte/runtime/Makefile.am | 54 + .../data_type_support/orte_dt_compare_fns.c | 221 + .../data_type_support/orte_dt_copy_fns.c | 330 + .../data_type_support/orte_dt_packing_fns.c | 835 ++ .../data_type_support/orte_dt_print_fns.c | 872 ++ .../data_type_support/orte_dt_support.h | 173 + .../data_type_support/orte_dt_unpacking_fns.c | 931 ++ orte/runtime/help-orte-runtime.txt | 63 + orte/runtime/orte_cr.c | 400 + orte/runtime/orte_cr.h | 57 + orte/runtime/orte_data_server.c | 649 ++ orte/runtime/orte_data_server.h | 54 + orte/runtime/orte_finalize.c | 94 + orte/runtime/orte_globals.c | 918 ++ orte/runtime/orte_globals.h | 590 ++ orte/runtime/orte_info_support.c | 116 + orte/runtime/orte_info_support.h | 44 + orte/runtime/orte_init.c | 283 + orte/runtime/orte_locks.c | 46 + orte/runtime/orte_locks.h | 48 + orte/runtime/orte_mca_params.c | 782 ++ orte/runtime/orte_quit.c | 391 + orte/runtime/orte_quit.h | 37 + orte/runtime/orte_wait.c | 263 + orte/runtime/orte_wait.h | 184 + orte/runtime/runtime.h | 81 + orte/runtime/runtime_internals.h | 40 + orte/test/mpi/Makefile | 27 + orte/test/mpi/Makefile.include | 59 + orte/test/mpi/abort.c | 44 + orte/test/mpi/accept.c | 44 + orte/test/mpi/bad_exit.c | 25 + orte/test/mpi/badcoll.c | 28 + orte/test/mpi/bcast_loop.c | 36 + orte/test/mpi/binding.c | 61 + orte/test/mpi/client.c | 37 + orte/test/mpi/concurrent_spawn.c | 82 + orte/test/mpi/connect.c | 35 + orte/test/mpi/crisscross.c | 273 + orte/test/mpi/debugger.c | 31 + orte/test/mpi/delayed_abort.c | 39 + orte/test/mpi/early_abort.c | 46 + orte/test/mpi/hello.c | 34 + orte/test/mpi/hello_barrier.c | 24 + orte/test/mpi/hello_nodename.c | 52 + orte/test/mpi/hello_output.c | 37 + orte/test/mpi/hello_show_help.c | 53 + orte/test/mpi/info_spawn.c | 82 + orte/test/mpi/init-exit77.c | 13 + orte/test/mpi/intercomm_create.c | 174 + orte/test/mpi/iof.c | 65 + orte/test/mpi/loop_child.c | 30 + orte/test/mpi/loop_spawn.c | 48 + orte/test/mpi/makedata.pl | 46 + orte/test/mpi/mpi_barrier.c | 17 + orte/test/mpi/mpi_info.c | 43 + orte/test/mpi/mpi_no_op.c | 17 + orte/test/mpi/mpi_spin.c | 91 + orte/test/mpi/multi_abort.c | 25 + orte/test/mpi/myhello.spec | 3 + orte/test/mpi/myring.spec | 3 + orte/test/mpi/paccept.c | 102 + orte/test/mpi/parallel_r64.c | 222 + orte/test/mpi/parallel_r8.c | 222 + orte/test/mpi/parallel_w64.c | 228 + orte/test/mpi/parallel_w8.c | 227 + orte/test/mpi/pconnect.c | 98 + orte/test/mpi/pmix.c | 130 + orte/test/mpi/pubsub.c | 64 + orte/test/mpi/read_write.c | 56 + orte/test/mpi/reduce-hang.c | 37 + orte/test/mpi/ring.c | 63 + orte/test/mpi/segv.c | 30 + orte/test/mpi/sendrecv_blaster.c | 189 + orte/test/mpi/server.c | 55 + orte/test/mpi/shell_hello | 3 + orte/test/mpi/simple_spawn.c | 60 + orte/test/mpi/singleton_client_server.c | 214 + orte/test/mpi/sio.c | 23 + orte/test/mpi/slave.c | 33 + orte/test/mpi/spawn-problem/Makefile | 16 + orte/test/mpi/spawn-problem/ch_rec.c | 52 + orte/test/mpi/spawn-problem/start.c | 28 + orte/test/mpi/spawn_multiple.c | 64 + orte/test/mpi/spawn_tree.c | 71 + orte/test/mpi/thread_init.c | 11 + orte/test/mpi/ziaprobe.c | 198 + orte/test/mpi/ziatest.README | 21 + orte/test/mpi/ziatest.c | 52 + orte/test/system/Makefile | 21 + orte/test/system/Makefile.include | 47 + orte/test/system/binom.c | 139 + orte/test/system/event-threads.c | 152 + orte/test/system/evpri-test.c | 108 + orte/test/system/evpri-test2.c | 101 + orte/test/system/evthread-test.c | 154 + orte/test/system/get_limits.c | 39 + orte/test/system/getenv_pmi.c | 98 + orte/test/system/iof_delay.c | 64 + orte/test/system/iof_stress.c | 71 + orte/test/system/mapper.c | 75 + orte/test/system/mapr.py | 18 + orte/test/system/no_op.c | 13 + orte/test/system/ofi_big_msg.c | 119 + orte/test/system/ofi_conduit_stress.c | 143 + orte/test/system/ofi_query_test.c | 137 + orte/test/system/ofi_stress.c | 121 + orte/test/system/oob_stress.c | 118 + orte/test/system/oob_stress_channel.c | 232 + orte/test/system/opal-evpri-test.c | 107 + orte/test/system/opal_hotel.c | 106 + orte/test/system/opal_hwloc.c | 135 + orte/test/system/opal_interface.c | 82 + orte/test/system/orte_abort.c | 58 + orte/test/system/orte_dfs.c | 311 + orte/test/system/orte_errors.c | 33 + orte/test/system/orte_exit.c | 53 + orte/test/system/orte_loop_child.c | 22 + orte/test/system/orte_loop_spawn.c | 55 + orte/test/system/orte_no_op.c | 24 + orte/test/system/orte_nodename.c | 51 + orte/test/system/orte_notify.c | 83 + orte/test/system/orte_spawn.c | 91 + orte/test/system/orte_spin.c | 41 + orte/test/system/orte_tool.c | 104 + orte/test/system/pmixtool.c | 78 + orte/test/system/psm_keygen.c | 50 + orte/test/system/radix.c | 137 + orte/test/system/red.py | 38 + orte/test/system/reducer.c | 82 + orte/test/system/regex.c | 67 + orte/test/system/segfault.c | 18 + orte/test/system/sigusr_trap.c | 105 + orte/test/system/spin.c | 31 + orte/test/system/test-time.c | 88 + orte/test/system/ulfm.c | 52 + orte/tools/Makefile.am | 54 + orte/tools/orte-checkpoint/Makefile.am | 51 + .../orte-checkpoint/help-orte-checkpoint.txt | 113 + .../tools/orte-checkpoint/orte-checkpoint.1in | 103 + orte/tools/orte-checkpoint/orte-checkpoint.c | 985 ++ orte/tools/orte-clean/Makefile.am | 47 + orte/tools/orte-clean/help-orte-clean.txt | 26 + orte/tools/orte-clean/orte-clean.1in | 120 + orte/tools/orte-clean/orte-clean.c | 423 + orte/tools/orte-dvm/Makefile.am | 57 + orte/tools/orte-dvm/orte-dvm.1in | 193 + orte/tools/orte-dvm/orte-dvm.c | 533 ++ orte/tools/orte-info/Makefile.am | 75 + orte/tools/orte-info/components.c | 110 + orte/tools/orte-info/help-orte-info.txt | 58 + orte/tools/orte-info/orte-info.1in | 162 + orte/tools/orte-info/orte-info.c | 280 + orte/tools/orte-info/orte-info.h | 127 + orte/tools/orte-info/output.c | 199 + orte/tools/orte-info/param.c | 436 + orte/tools/orte-info/version.c | 359 + orte/tools/orte-migrate/Makefile.am | 44 + orte/tools/orte-migrate/help-orte-migrate.txt | 81 + orte/tools/orte-migrate/orte-migrate.1in | 81 + orte/tools/orte-migrate/orte-migrate.c | 791 ++ orte/tools/orte-ps/Makefile.am | 47 + orte/tools/orte-ps/help-orte-ps.txt | 46 + orte/tools/orte-ps/orte-ps.1in | 101 + orte/tools/orte-ps/orte-ps.c | 985 ++ orte/tools/orte-restart/Makefile.am | 51 + orte/tools/orte-restart/help-orte-restart.txt | 77 + orte/tools/orte-restart/orte-restart.1in | 115 + orte/tools/orte-restart/orte-restart.c | 897 ++ orte/tools/orte-server/Makefile.am | 47 + orte/tools/orte-server/help-orte-server.txt | 27 + orte/tools/orte-server/orte-server.1in | 72 + orte/tools/orte-server/orte-server.c | 303 + orte/tools/orte-top/Makefile.am | 47 + orte/tools/orte-top/help-orte-top.txt | 82 + orte/tools/orte-top/orte-top.1in | 106 + orte/tools/orte-top/orte-top.c | 1021 ++ orte/tools/orted/Makefile.am | 52 + orte/tools/orted/orted.1in | 46 + orte/tools/orted/orted.c | 61 + orte/tools/orterun/Makefile.am | 61 + orte/tools/orterun/help-orterun.txt | 677 ++ orte/tools/orterun/main.c | 32 + orte/tools/orterun/orterun.1in | 1597 ++++ orte/tools/orterun/orterun.c | 220 + orte/tools/orterun/orterun.h | 37 + orte/tools/wrappers/Makefile.am | 40 + orte/tools/wrappers/orte.pc.in | 25 + orte/tools/wrappers/orte_wrapper_script.in | 172 + .../tools/wrappers/ortecc-wrapper-data.txt.in | 29 + orte/util/Makefile.am | 88 + orte/util/attr.c | 605 ++ orte/util/attr.h | 233 + orte/util/comm/comm.c | 810 ++ orte/util/comm/comm.h | 64 + orte/util/context_fns.c | 153 + orte/util/context_fns.h | 40 + orte/util/dash_host/dash_host.c | 606 ++ orte/util/dash_host/dash_host.h | 46 + orte/util/dash_host/help-dash-host.txt | 68 + orte/util/error_strings.c | 464 + orte/util/error_strings.h | 49 + orte/util/help-regex.txt | 70 + orte/util/hnp_contact.c | 237 + orte/util/hnp_contact.h | 61 + orte/util/hostfile/help-hostfile.txt | 146 + orte/util/hostfile/hostfile.c | 1033 ++ orte/util/hostfile/hostfile.h | 45 + orte/util/hostfile/hostfile_lex.h | 85 + orte/util/hostfile/hostfile_lex.l | 188 + orte/util/hostfile/orte_hosts.7in | 197 + orte/util/listener.c | 381 + orte/util/listener.h | 66 + orte/util/name_fns.c | 679 ++ orte/util/name_fns.h | 144 + orte/util/nidmap.c | 339 + orte/util/nidmap.h | 51 + orte/util/parse_options.c | 145 + orte/util/parse_options.h | 36 + orte/util/pre_condition_transports.c | 186 + orte/util/pre_condition_transports.h | 41 + orte/util/proc_info.c | 368 + orte/util/proc_info.h | 166 + orte/util/regex.c | 770 ++ orte/util/regex.h | 65 + orte/util/session_dir.c | 551 ++ orte/util/session_dir.h | 148 + orte/util/show_help.c | 803 ++ orte/util/show_help.h | 109 + oshmem/Makefile.am | 118 + oshmem/include/Makefile.am | 54 + oshmem/include/oshmem/Makefile.am | 17 + oshmem/include/oshmem/constants.h | 123 + oshmem/include/oshmem/types.h | 25 + oshmem/include/oshmem/version.h.in | 30 + oshmem/include/oshmem_config.h | 67 + oshmem/include/pshmem.h | 546 ++ oshmem/include/pshmemx.h | 220 + oshmem/include/shmem-compat.h | 47 + oshmem/include/shmem.fh | 64 + oshmem/include/shmem.h.in | 615 ++ oshmem/include/shmemx.h | 204 + oshmem/info/Makefile.am | 18 + oshmem/info/info.c | 336 + oshmem/info/info.h | 69 + oshmem/mca/Makefile.am | 23 + oshmem/mca/atomic/Makefile.am | 29 + oshmem/mca/atomic/atomic.h | 126 + oshmem/mca/atomic/base/Makefile.am | 17 + .../mca/atomic/base/atomic_base_available.c | 137 + oshmem/mca/atomic/base/atomic_base_frame.c | 94 + oshmem/mca/atomic/base/atomic_base_select.c | 243 + oshmem/mca/atomic/base/base.h | 57 + oshmem/mca/atomic/basic/Makefile.am | 38 + oshmem/mca/atomic/basic/atomic_basic.h | 58 + .../mca/atomic/basic/atomic_basic_component.c | 92 + oshmem/mca/atomic/basic/atomic_basic_cswap.c | 48 + oshmem/mca/atomic/basic/atomic_basic_fadd.c | 51 + oshmem/mca/atomic/basic/atomic_basic_module.c | 179 + oshmem/mca/atomic/mxm/Makefile.am | 41 + oshmem/mca/atomic/mxm/atomic_mxm.h | 136 + oshmem/mca/atomic/mxm/atomic_mxm_component.c | 107 + oshmem/mca/atomic/mxm/atomic_mxm_cswap.c | 52 + oshmem/mca/atomic/mxm/atomic_mxm_fadd.c | 51 + oshmem/mca/atomic/mxm/atomic_mxm_module.c | 50 + oshmem/mca/atomic/mxm/configure.m4 | 60 + oshmem/mca/atomic/ucx/Makefile.am | 42 + oshmem/mca/atomic/ucx/atomic_ucx.h | 65 + oshmem/mca/atomic/ucx/atomic_ucx_component.c | 112 + oshmem/mca/atomic/ucx/atomic_ucx_cswap.c | 70 + oshmem/mca/atomic/ucx/atomic_ucx_fadd.c | 68 + oshmem/mca/atomic/ucx/atomic_ucx_module.c | 51 + oshmem/mca/atomic/ucx/configure.m4 | 32 + oshmem/mca/mca.h | 39 + oshmem/mca/memheap/Makefile.am | 33 + oshmem/mca/memheap/README | 50 + oshmem/mca/memheap/base/Makefile.am | 24 + oshmem/mca/memheap/base/base.h | 294 + .../mca/memheap/base/help-oshmem-memheap.txt | 23 + oshmem/mca/memheap/base/memheap_base_alloc.c | 56 + oshmem/mca/memheap/base/memheap_base_frame.c | 144 + oshmem/mca/memheap/base/memheap_base_mkey.c | 760 ++ .../mca/memheap/base/memheap_base_register.c | 142 + oshmem/mca/memheap/base/memheap_base_select.c | 229 + oshmem/mca/memheap/base/memheap_base_static.c | 233 + oshmem/mca/memheap/buddy/Makefile.am | 39 + oshmem/mca/memheap/buddy/memheap_buddy.c | 696 ++ oshmem/mca/memheap/buddy/memheap_buddy.h | 88 + .../memheap/buddy/memheap_buddy_component.c | 73 + .../memheap/buddy/memheap_buddy_component.h | 26 + oshmem/mca/memheap/configure.m4 | 19 + oshmem/mca/memheap/memheap.h | 154 + oshmem/mca/memheap/ptmalloc/Makefile.am | 41 + oshmem/mca/memheap/ptmalloc/malloc.c | 5502 +++++++++++ oshmem/mca/memheap/ptmalloc/malloc_defs.h | 32 + .../mca/memheap/ptmalloc/memheap_ptmalloc.c | 177 + .../mca/memheap/ptmalloc/memheap_ptmalloc.h | 72 + .../ptmalloc/memheap_ptmalloc_component.c | 73 + .../ptmalloc/memheap_ptmalloc_component.h | 26 + oshmem/mca/scoll/Makefile.am | 29 + oshmem/mca/scoll/base/Makefile.am | 17 + oshmem/mca/scoll/base/base.h | 69 + oshmem/mca/scoll/base/scoll_base_available.c | 137 + oshmem/mca/scoll/base/scoll_base_frame.c | 121 + oshmem/mca/scoll/base/scoll_base_select.c | 388 + oshmem/mca/scoll/basic/Makefile.am | 41 + oshmem/mca/scoll/basic/scoll_basic.h | 109 + oshmem/mca/scoll/basic/scoll_basic_alltoall.c | 123 + oshmem/mca/scoll/basic/scoll_basic_barrier.c | 586 ++ .../mca/scoll/basic/scoll_basic_broadcast.c | 254 + oshmem/mca/scoll/basic/scoll_basic_collect.c | 631 ++ .../mca/scoll/basic/scoll_basic_component.c | 165 + oshmem/mca/scoll/basic/scoll_basic_module.c | 61 + oshmem/mca/scoll/basic/scoll_basic_reduce.c | 810 ++ oshmem/mca/scoll/fca/Makefile.am | 42 + oshmem/mca/scoll/fca/configure.m4 | 40 + .../mca/scoll/fca/help-oshmem-scoll-fca.txt | 16 + oshmem/mca/scoll/fca/scoll_fca.h | 136 + oshmem/mca/scoll/fca/scoll_fca_api.h | 81 + oshmem/mca/scoll/fca/scoll_fca_component.c | 353 + oshmem/mca/scoll/fca/scoll_fca_debug.h | 35 + oshmem/mca/scoll/fca/scoll_fca_module.c | 571 ++ oshmem/mca/scoll/fca/scoll_fca_ops.c | 301 + oshmem/mca/scoll/mpi/Makefile.am | 38 + .../mca/scoll/mpi/help-oshmem-scoll-mpi.txt | 16 + oshmem/mca/scoll/mpi/scoll_mpi.h | 114 + oshmem/mca/scoll/mpi/scoll_mpi_component.c | 173 + oshmem/mca/scoll/mpi/scoll_mpi_debug.h | 35 + oshmem/mca/scoll/mpi/scoll_mpi_dtypes.h | 71 + oshmem/mca/scoll/mpi/scoll_mpi_module.c | 194 + oshmem/mca/scoll/mpi/scoll_mpi_ops.c | 214 + oshmem/mca/scoll/scoll.h | 207 + oshmem/mca/spml/Makefile.am | 29 + oshmem/mca/spml/base/Makefile.am | 28 + oshmem/mca/spml/base/base.h | 119 + oshmem/mca/spml/base/spml_base.c | 179 + oshmem/mca/spml/base/spml_base_atomicreq.c | 39 + oshmem/mca/spml/base/spml_base_atomicreq.h | 101 + oshmem/mca/spml/base/spml_base_frame.c | 163 + oshmem/mca/spml/base/spml_base_getreq.c | 39 + oshmem/mca/spml/base/spml_base_getreq.h | 93 + oshmem/mca/spml/base/spml_base_putreq.c | 36 + oshmem/mca/spml/base/spml_base_putreq.h | 98 + oshmem/mca/spml/base/spml_base_request.c | 41 + oshmem/mca/spml/base/spml_base_request.h | 85 + oshmem/mca/spml/base/spml_base_request_dbg.h | 25 + oshmem/mca/spml/base/spml_base_select.c | 212 + oshmem/mca/spml/configure.m4 | 19 + oshmem/mca/spml/ikrit/Makefile.am | 41 + oshmem/mca/spml/ikrit/configure.m4 | 32 + .../mca/spml/ikrit/help-oshmem-spml-ikrit.txt | 45 + oshmem/mca/spml/ikrit/spml_ikrit.c | 1081 +++ oshmem/mca/spml/ikrit/spml_ikrit.h | 203 + oshmem/mca/spml/ikrit/spml_ikrit_component.c | 429 + oshmem/mca/spml/ikrit/spml_ikrit_component.h | 25 + oshmem/mca/spml/spml.h | 337 + oshmem/mca/spml/ucx/Makefile.am | 42 + oshmem/mca/spml/ucx/configure.m4 | 32 + oshmem/mca/spml/ucx/spml_ucx.c | 576 ++ oshmem/mca/spml/ucx/spml_ucx.h | 157 + oshmem/mca/spml/ucx/spml_ucx_component.c | 192 + oshmem/mca/spml/ucx/spml_ucx_component.h | 25 + oshmem/mca/spml/yoda/Makefile.am | 45 + .../mca/spml/yoda/help-oshmem-spml-yoda.txt | 17 + oshmem/mca/spml/yoda/post_configure.sh | 4 + oshmem/mca/spml/yoda/spml_yoda.c | 1265 +++ oshmem/mca/spml/yoda/spml_yoda.h | 150 + oshmem/mca/spml/yoda/spml_yoda_component.c | 140 + oshmem/mca/spml/yoda/spml_yoda_component.h | 25 + oshmem/mca/spml/yoda/spml_yoda_getreq.c | 128 + oshmem/mca/spml/yoda/spml_yoda_getreq.h | 70 + oshmem/mca/spml/yoda/spml_yoda_putreq.c | 113 + oshmem/mca/spml/yoda/spml_yoda_putreq.h | 63 + oshmem/mca/spml/yoda/spml_yoda_rdmafrag.h | 45 + oshmem/mca/sshmem/Makefile.am | 29 + oshmem/mca/sshmem/base/Makefile.am | 19 + oshmem/mca/sshmem/base/base.h | 171 + oshmem/mca/sshmem/base/help-oshmem-sshmem.txt | 25 + oshmem/mca/sshmem/base/sshmem_base_close.c | 33 + oshmem/mca/sshmem/base/sshmem_base_open.c | 108 + oshmem/mca/sshmem/base/sshmem_base_select.c | 154 + oshmem/mca/sshmem/base/sshmem_base_wrappers.c | 75 + oshmem/mca/sshmem/mmap/Makefile.am | 36 + oshmem/mca/sshmem/mmap/configure.m4 | 42 + .../sshmem/mmap/help-oshmem-sshmem-mmap.txt | 26 + oshmem/mca/sshmem/mmap/sshmem_mmap.h | 42 + .../mca/sshmem/mmap/sshmem_mmap_component.c | 148 + oshmem/mca/sshmem/mmap/sshmem_mmap_module.c | 382 + oshmem/mca/sshmem/sshmem.h | 178 + oshmem/mca/sshmem/sshmem_types.h | 122 + oshmem/mca/sshmem/sysv/Makefile.am | 37 + oshmem/mca/sshmem/sysv/configure.m4 | 42 + .../sshmem/sysv/help-oshmem-sshmem-sysv.txt | 24 + oshmem/mca/sshmem/sysv/sshmem_sysv.h | 45 + .../mca/sshmem/sysv/sshmem_sysv_component.c | 220 + oshmem/mca/sshmem/sysv/sshmem_sysv_module.c | 370 + oshmem/mca/sshmem/verbs/Makefile.am | 39 + oshmem/mca/sshmem/verbs/configure.m4 | 101 + oshmem/mca/sshmem/verbs/sshmem_verbs.h | 96 + .../mca/sshmem/verbs/sshmem_verbs_component.c | 353 + oshmem/mca/sshmem/verbs/sshmem_verbs_module.c | 517 + oshmem/op/Makefile.am | 19 + oshmem/op/op.c | 487 + oshmem/op/op.h | 227 + oshmem/proc/Makefile.am | 21 + oshmem/proc/proc.c | 241 + oshmem/proc/proc.h | 300 + oshmem/proc/proc_group_cache.c | 117 + oshmem/proc/proc_group_cache.h | 41 + oshmem/request/Makefile.am | 19 + oshmem/request/request.c | 181 + oshmem/request/request.h | 443 + oshmem/request/request_dbg.h | 49 + oshmem/runtime/Makefile.am | 29 + oshmem/runtime/help-shmem-runtime.txt | 42 + oshmem/runtime/oshmem_info_support.c | 105 + oshmem/runtime/oshmem_info_support.h | 26 + oshmem/runtime/oshmem_shmem_abort.c | 145 + oshmem/runtime/oshmem_shmem_exchange.c | 43 + oshmem/runtime/oshmem_shmem_finalize.c | 170 + oshmem/runtime/oshmem_shmem_init.c | 369 + oshmem/runtime/oshmem_shmem_params.c | 85 + oshmem/runtime/oshmem_shmem_preconnect.h | 24 + oshmem/runtime/params.h | 42 + oshmem/runtime/runtime.h | 201 + oshmem/shmem/Makefile.am | 17 + oshmem/shmem/c/Makefile.am | 89 + oshmem/shmem/c/profile/Makefile.am | 108 + oshmem/shmem/c/profile/defines.h | 407 + oshmem/shmem/c/shmem_add.c | 64 + oshmem/shmem/c/shmem_addr_accessible.c | 41 + oshmem/shmem/c/shmem_align.c | 60 + oshmem/shmem/c/shmem_alloc.c | 59 + oshmem/shmem/c/shmem_alltoall.c | 137 + oshmem/shmem/c/shmem_barrier.c | 93 + oshmem/shmem/c/shmem_broadcast.c | 119 + oshmem/shmem/c/shmem_clear_cache_inv.c | 34 + oshmem/shmem/c/shmem_clear_cache_line_inv.c | 34 + oshmem/shmem/c/shmem_clear_lock.c | 31 + oshmem/shmem/c/shmem_collect.c | 116 + oshmem/shmem/c/shmem_cswap.c | 66 + oshmem/shmem/c/shmem_fadd.c | 66 + oshmem/shmem/c/shmem_fence.c | 27 + oshmem/shmem/c/shmem_fetch.c | 71 + oshmem/shmem/c/shmem_finalize.c | 36 + oshmem/shmem/c/shmem_finc.c | 67 + oshmem/shmem/c/shmem_free.c | 55 + oshmem/shmem/c/shmem_g.c | 72 + oshmem/shmem/c/shmem_get.c | 101 + oshmem/shmem/c/shmem_get_nb.c | 100 + oshmem/shmem/c/shmem_global_exit.c | 45 + oshmem/shmem/c/shmem_iget.c | 106 + oshmem/shmem/c/shmem_inc.c | 66 + oshmem/shmem/c/shmem_info.c | 36 + oshmem/shmem/c/shmem_init.c | 82 + oshmem/shmem/c/shmem_iput.c | 105 + oshmem/shmem/c/shmem_lock.c | 1055 ++ oshmem/shmem/c/shmem_p.c | 73 + oshmem/shmem/c/shmem_pe_accessible.c | 35 + oshmem/shmem/c/shmem_ptr.c | 36 + oshmem/shmem/c/shmem_put.c | 104 + oshmem/shmem/c/shmem_put_nb.c | 107 + oshmem/shmem/c/shmem_query.c | 62 + oshmem/shmem/c/shmem_quiet.c | 27 + oshmem/shmem/c/shmem_realloc.c | 62 + oshmem/shmem/c/shmem_reduce.c | 244 + oshmem/shmem/c/shmem_set.c | 66 + oshmem/shmem/c/shmem_set_cache_inv.c | 34 + oshmem/shmem/c/shmem_set_cache_line_inv.c | 34 + oshmem/shmem/c/shmem_set_lock.c | 31 + oshmem/shmem/c/shmem_swap.c | 67 + oshmem/shmem/c/shmem_test_lock.c | 32 + oshmem/shmem/c/shmem_udcflush.c | 33 + oshmem/shmem/c/shmem_udcflush_line.c | 32 + oshmem/shmem/c/shmem_wait.c | 91 + oshmem/shmem/fortran/Makefile.am | 149 + oshmem/shmem/fortran/bindings.h | 40 + oshmem/shmem/fortran/profile/Makefile.am | 159 + oshmem/shmem/fortran/profile/defines.h | 749 ++ oshmem/shmem/fortran/profile/pbindings.h | 24 + .../shmem/fortran/profile/prototypes_pshmem.h | 219 + oshmem/shmem/fortran/prototypes_shmem.h | 222 + .../shmem/fortran/shmem_addr_accessible_f.c | 36 + oshmem/shmem/fortran/shmem_alltoall_f.c | 191 + oshmem/shmem/fortran/shmem_and_to_all_f.c | 119 + oshmem/shmem/fortran/shmem_barrier_all_f.c | 34 + oshmem/shmem/fortran/shmem_barrier_f.c | 37 + oshmem/shmem/fortran/shmem_broadcast_f.c | 137 + oshmem/shmem/fortran/shmem_cache_f.c | 105 + oshmem/shmem/fortran/shmem_character_get_f.c | 45 + oshmem/shmem/fortran/shmem_character_put_f.c | 46 + oshmem/shmem/fortran/shmem_collect_f.c | 164 + oshmem/shmem/fortran/shmem_complex_get_f.c | 45 + oshmem/shmem/fortran/shmem_complex_iget_f.c | 53 + oshmem/shmem/fortran/shmem_complex_iput_f.c | 54 + oshmem/shmem/fortran/shmem_complex_put_f.c | 45 + oshmem/shmem/fortran/shmem_double_get_f.c | 45 + oshmem/shmem/fortran/shmem_double_iget_f.c | 53 + oshmem/shmem/fortran/shmem_double_iput_f.c | 54 + oshmem/shmem/fortran/shmem_double_put_f.c | 45 + oshmem/shmem/fortran/shmem_fence_f.c | 34 + oshmem/shmem/fortran/shmem_finalize_f.c | 28 + oshmem/shmem/fortran/shmem_fortran_pointer.h | 17 + oshmem/shmem/fortran/shmem_get128_f.c | 41 + oshmem/shmem/fortran/shmem_get32_f.c | 41 + oshmem/shmem/fortran/shmem_get4_f.c | 41 + oshmem/shmem/fortran/shmem_get64_f.c | 41 + oshmem/shmem/fortran/shmem_get8_f.c | 41 + oshmem/shmem/fortran/shmem_get_nb_f.c | 250 + oshmem/shmem/fortran/shmem_getmem_f.c | 41 + oshmem/shmem/fortran/shmem_global_exit_f.c | 33 + oshmem/shmem/fortran/shmem_iget128_f.c | 50 + oshmem/shmem/fortran/shmem_iget32_f.c | 50 + oshmem/shmem/fortran/shmem_iget4_f.c | 50 + oshmem/shmem/fortran/shmem_iget64_f.c | 50 + oshmem/shmem/fortran/shmem_iget8_f.c | 50 + oshmem/shmem/fortran/shmem_info_f.c | 52 + oshmem/shmem/fortran/shmem_init_f.c | 47 + oshmem/shmem/fortran/shmem_int4_add_f.c | 48 + oshmem/shmem/fortran/shmem_int4_cswap_f.c | 50 + oshmem/shmem/fortran/shmem_int4_fadd_f.c | 50 + oshmem/shmem/fortran/shmem_int4_fetch_f.c | 50 + oshmem/shmem/fortran/shmem_int4_finc_f.c | 51 + oshmem/shmem/fortran/shmem_int4_inc_f.c | 48 + oshmem/shmem/fortran/shmem_int4_set_f.c | 45 + oshmem/shmem/fortran/shmem_int4_swap_f.c | 48 + oshmem/shmem/fortran/shmem_int4_wait_f.c | 37 + .../shmem/fortran/shmem_int4_wait_until_f.c | 40 + oshmem/shmem/fortran/shmem_int8_add_f.c | 48 + oshmem/shmem/fortran/shmem_int8_cswap_f.c | 50 + oshmem/shmem/fortran/shmem_int8_fadd_f.c | 50 + oshmem/shmem/fortran/shmem_int8_fetch_f.c | 50 + oshmem/shmem/fortran/shmem_int8_finc_f.c | 51 + oshmem/shmem/fortran/shmem_int8_inc_f.c | 49 + oshmem/shmem/fortran/shmem_int8_set_f.c | 45 + oshmem/shmem/fortran/shmem_int8_swap_f.c | 48 + oshmem/shmem/fortran/shmem_int8_wait_f.c | 37 + .../shmem/fortran/shmem_int8_wait_until_f.c | 40 + oshmem/shmem/fortran/shmem_integer_get_f.c | 45 + oshmem/shmem/fortran/shmem_integer_iget_f.c | 53 + oshmem/shmem/fortran/shmem_integer_iput_f.c | 54 + oshmem/shmem/fortran/shmem_integer_put_f.c | 45 + oshmem/shmem/fortran/shmem_iput128_f.c | 51 + oshmem/shmem/fortran/shmem_iput32_f.c | 50 + oshmem/shmem/fortran/shmem_iput4_f.c | 51 + oshmem/shmem/fortran/shmem_iput64_f.c | 51 + oshmem/shmem/fortran/shmem_iput8_f.c | 51 + oshmem/shmem/fortran/shmem_lock_f.c | 64 + oshmem/shmem/fortran/shmem_logical_get_f.c | 45 + oshmem/shmem/fortran/shmem_logical_iget_f.c | 53 + oshmem/shmem/fortran/shmem_logical_iput_f.c | 54 + oshmem/shmem/fortran/shmem_logical_put_f.c | 45 + oshmem/shmem/fortran/shmem_max_to_all_f.c | 146 + oshmem/shmem/fortran/shmem_min_to_all_f.c | 147 + oshmem/shmem/fortran/shmem_my_pe_f.c | 57 + oshmem/shmem/fortran/shmem_n_pes_f.c | 51 + oshmem/shmem/fortran/shmem_or_to_all_f.c | 116 + oshmem/shmem/fortran/shmem_pe_accessible_f.c | 36 + oshmem/shmem/fortran/shmem_prod_to_all_f.c | 167 + oshmem/shmem/fortran/shmem_ptr_f.c | 36 + oshmem/shmem/fortran/shmem_put128_f.c | 42 + oshmem/shmem/fortran/shmem_put32_f.c | 42 + oshmem/shmem/fortran/shmem_put4_f.c | 42 + oshmem/shmem/fortran/shmem_put64_f.c | 42 + oshmem/shmem/fortran/shmem_put8_f.c | 42 + oshmem/shmem/fortran/shmem_put_nb_f.c | 249 + oshmem/shmem/fortran/shmem_putmem_f.c | 41 + oshmem/shmem/fortran/shmem_quiet_f.c | 34 + oshmem/shmem/fortran/shmem_real4_fetch_f.c | 49 + oshmem/shmem/fortran/shmem_real4_set_f.c | 46 + oshmem/shmem/fortran/shmem_real4_swap_f.c | 48 + oshmem/shmem/fortran/shmem_real8_fetch_f.c | 50 + oshmem/shmem/fortran/shmem_real8_set_f.c | 45 + oshmem/shmem/fortran/shmem_real8_swap_f.c | 48 + oshmem/shmem/fortran/shmem_real_get_f.c | 45 + oshmem/shmem/fortran/shmem_real_iget_f.c | 53 + oshmem/shmem/fortran/shmem_real_iput_f.c | 54 + oshmem/shmem/fortran/shmem_real_put_f.c | 45 + oshmem/shmem/fortran/shmem_sum_to_all_f.c | 166 + oshmem/shmem/fortran/shmem_swap_f.c | 50 + oshmem/shmem/fortran/shmem_wait_f.c | 37 + oshmem/shmem/fortran/shmem_wait_until_f.c | 40 + oshmem/shmem/fortran/shmem_xor_to_all_f.c | 138 + oshmem/shmem/fortran/shpalloc_f.c | 57 + oshmem/shmem/fortran/shpclmove_f.c | 67 + oshmem/shmem/fortran/shpdeallc_f.c | 38 + oshmem/shmem/help-shmem-api.txt | 14 + oshmem/shmem/man/man3/Makefile.extra | 247 + oshmem/shmem/man/man3/OpenSHMEM.3in | 1 + oshmem/shmem/man/man3/_my_pe.3in | 1 + oshmem/shmem/man/man3/_num_pes.3in | 1 + oshmem/shmem/man/man3/intro_shmem.3in | 1311 +++ oshmem/shmem/man/man3/shfree.3in | 1 + oshmem/shmem/man/man3/shmalloc.3in | 105 + .../shmem/man/man3/shmem_addr_accessible.3in | 56 + oshmem/shmem/man/man3/shmem_align.3in | 1 + oshmem/shmem/man/man3/shmem_alltoall32.3in | 226 + oshmem/shmem/man/man3/shmem_alltoall64.3in | 1 + oshmem/shmem/man/man3/shmem_alltoalls32.3in | 1 + oshmem/shmem/man/man3/shmem_alltoalls64.3in | 1 + oshmem/shmem/man/man3/shmem_barrier.3in | 112 + oshmem/shmem/man/man3/shmem_barrier_all.3in | 59 + oshmem/shmem/man/man3/shmem_broadcast32.3in | 186 + oshmem/shmem/man/man3/shmem_broadcast64.3in | 1 + oshmem/shmem/man/man3/shmem_char_g.3in | 64 + oshmem/shmem/man/man3/shmem_char_get.3in | 207 + oshmem/shmem/man/man3/shmem_char_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_char_p.3in | 73 + oshmem/shmem/man/man3/shmem_char_put.3in | 214 + oshmem/shmem/man/man3/shmem_char_put_nbi.3in | 1 + .../shmem/man/man3/shmem_clear_cache_inv.3in | 1 + .../man/man3/shmem_clear_cache_line_inv.3in | 1 + oshmem/shmem/man/man3/shmem_clear_lock.3in | 1 + oshmem/shmem/man/man3/shmem_collect32.3in | 197 + oshmem/shmem/man/man3/shmem_collect64.3in | 1 + .../man/man3/shmem_complexd_prod_to_all.3in | 1 + .../man/man3/shmem_complexd_sum_to_all.3in | 1 + .../man/man3/shmem_complexf_prod_to_all.3in | 1 + .../man/man3/shmem_complexf_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_double_fetch.3in | 1 + oshmem/shmem/man/man3/shmem_double_g.3in | 1 + oshmem/shmem/man/man3/shmem_double_get.3in | 1 + .../shmem/man/man3/shmem_double_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_double_iget.3in | 1 + oshmem/shmem/man/man3/shmem_double_iput.3in | 1 + .../man/man3/shmem_double_max_to_all.3in | 1 + .../man/man3/shmem_double_min_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_double_p.3in | 1 + .../man/man3/shmem_double_prod_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_double_put.3in | 1 + .../shmem/man/man3/shmem_double_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_double_set.3in | 1 + .../man/man3/shmem_double_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_double_swap.3in | 1 + oshmem/shmem/man/man3/shmem_fcollect32.3in | 1 + oshmem/shmem/man/man3/shmem_fcollect64.3in | 1 + oshmem/shmem/man/man3/shmem_fence.3in | 54 + oshmem/shmem/man/man3/shmem_finalize.3in | 47 + oshmem/shmem/man/man3/shmem_float_fetch.3in | 1 + oshmem/shmem/man/man3/shmem_float_g.3in | 1 + oshmem/shmem/man/man3/shmem_float_get.3in | 1 + oshmem/shmem/man/man3/shmem_float_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_float_iget.3in | 1 + oshmem/shmem/man/man3/shmem_float_iput.3in | 1 + .../shmem/man/man3/shmem_float_max_to_all.3in | 1 + .../shmem/man/man3/shmem_float_min_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_float_p.3in | 1 + .../man/man3/shmem_float_prod_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_float_put.3in | 1 + oshmem/shmem/man/man3/shmem_float_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_float_set.3in | 1 + .../shmem/man/man3/shmem_float_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_float_swap.3in | 1 + oshmem/shmem/man/man3/shmem_free.3in | 1 + oshmem/shmem/man/man3/shmem_get128.3in | 1 + oshmem/shmem/man/man3/shmem_get128_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get16_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get32.3in | 1 + oshmem/shmem/man/man3/shmem_get32_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get64.3in | 1 + oshmem/shmem/man/man3/shmem_get64_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_get8_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_getmem.3in | 1 + oshmem/shmem/man/man3/shmem_getmem_nbi.3in | 168 + oshmem/shmem/man/man3/shmem_global_exit.3in | 47 + oshmem/shmem/man/man3/shmem_iget128.3in | 1 + oshmem/shmem/man/man3/shmem_iget32.3in | 1 + oshmem/shmem/man/man3/shmem_iget64.3in | 1 + oshmem/shmem/man/man3/shmem_info_get_name.3in | 48 + .../shmem/man/man3/shmem_info_get_version.3in | 43 + oshmem/shmem/man/man3/shmem_init.3in | 84 + oshmem/shmem/man/man3/shmem_int_add.3in | 76 + .../shmem/man/man3/shmem_int_and_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_int_cswap.3in | 127 + oshmem/shmem/man/man3/shmem_int_fadd.3in | 79 + oshmem/shmem/man/man3/shmem_int_fetch.3in | 83 + oshmem/shmem/man/man3/shmem_int_finc.3in | 76 + oshmem/shmem/man/man3/shmem_int_g.3in | 1 + oshmem/shmem/man/man3/shmem_int_get.3in | 1 + oshmem/shmem/man/man3/shmem_int_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_int_iget.3in | 1 + oshmem/shmem/man/man3/shmem_int_inc.3in | 73 + oshmem/shmem/man/man3/shmem_int_iput.3in | 1 + .../shmem/man/man3/shmem_int_max_to_all.3in | 1 + .../shmem/man/man3/shmem_int_min_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_int_or_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_int_p.3in | 1 + .../shmem/man/man3/shmem_int_prod_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_int_put.3in | 1 + oshmem/shmem/man/man3/shmem_int_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_int_set.3in | 77 + .../shmem/man/man3/shmem_int_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_int_swap.3in | 1 + oshmem/shmem/man/man3/shmem_int_wait.3in | 1 + .../shmem/man/man3/shmem_int_wait_until.3in | 1 + .../shmem/man/man3/shmem_int_xor_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_iput128.3in | 1 + oshmem/shmem/man/man3/shmem_iput32.3in | 1 + oshmem/shmem/man/man3/shmem_iput64.3in | 1 + oshmem/shmem/man/man3/shmem_long_add.3in | 1 + .../shmem/man/man3/shmem_long_and_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_long_cswap.3in | 1 + oshmem/shmem/man/man3/shmem_long_fadd.3in | 1 + oshmem/shmem/man/man3/shmem_long_fetch.3in | 1 + oshmem/shmem/man/man3/shmem_long_finc.3in | 1 + oshmem/shmem/man/man3/shmem_long_g.3in | 1 + oshmem/shmem/man/man3/shmem_long_get.3in | 1 + oshmem/shmem/man/man3/shmem_long_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_long_iget.3in | 1 + oshmem/shmem/man/man3/shmem_long_inc.3in | 1 + oshmem/shmem/man/man3/shmem_long_iput.3in | 1 + .../shmem/man/man3/shmem_long_max_to_all.3in | 1 + .../shmem/man/man3/shmem_long_min_to_all.3in | 1 + .../shmem/man/man3/shmem_long_or_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_long_p.3in | 1 + .../shmem/man/man3/shmem_long_prod_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_long_put.3in | 1 + oshmem/shmem/man/man3/shmem_long_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_long_set.3in | 1 + .../shmem/man/man3/shmem_long_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_long_swap.3in | 1 + oshmem/shmem/man/man3/shmem_long_wait.3in | 1 + .../shmem/man/man3/shmem_long_wait_until.3in | 1 + .../shmem/man/man3/shmem_long_xor_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_longdouble_g.3in | 1 + .../shmem/man/man3/shmem_longdouble_get.3in | 1 + .../man/man3/shmem_longdouble_get_nbi.3in | 1 + .../shmem/man/man3/shmem_longdouble_iget.3in | 1 + .../shmem/man/man3/shmem_longdouble_iput.3in | 1 + .../man/man3/shmem_longdouble_max_to_all.3in | 1 + .../man/man3/shmem_longdouble_min_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_longdouble_p.3in | 1 + .../man/man3/shmem_longdouble_prod_to_all.3in | 1 + .../shmem/man/man3/shmem_longdouble_put.3in | 1 + .../man/man3/shmem_longdouble_put_nbi.3in | 1 + .../man/man3/shmem_longdouble_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_add.3in | 1 + .../man/man3/shmem_longlong_and_to_all.3in | 1 + .../shmem/man/man3/shmem_longlong_cswap.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_fadd.3in | 1 + .../shmem/man/man3/shmem_longlong_fetch.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_finc.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_g.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_get.3in | 1 + .../shmem/man/man3/shmem_longlong_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_iget.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_inc.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_iput.3in | 1 + .../man/man3/shmem_longlong_max_to_all.3in | 1 + .../man/man3/shmem_longlong_min_to_all.3in | 1 + .../man/man3/shmem_longlong_or_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_p.3in | 1 + .../man/man3/shmem_longlong_prod_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_put.3in | 1 + .../shmem/man/man3/shmem_longlong_put_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_set.3in | 1 + .../man/man3/shmem_longlong_sum_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_swap.3in | 1 + oshmem/shmem/man/man3/shmem_longlong_wait.3in | 1 + .../man/man3/shmem_longlong_wait_until.3in | 1 + .../man/man3/shmem_longlong_xor_to_all.3in | 1 + oshmem/shmem/man/man3/shmem_malloc.3in | 113 + oshmem/shmem/man/man3/shmem_my_pe.3in | 41 + oshmem/shmem/man/man3/shmem_n_pes.3in | 39 + oshmem/shmem/man/man3/shmem_pe_accessible.3in | 54 + oshmem/shmem/man/man3/shmem_ptr.3in | 129 + oshmem/shmem/man/man3/shmem_put128.3in | 1 + oshmem/shmem/man/man3/shmem_put128_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put16_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put32.3in | 1 + oshmem/shmem/man/man3/shmem_put32_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put64.3in | 1 + oshmem/shmem/man/man3/shmem_put64_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_put8_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_putmem.3in | 1 + oshmem/shmem/man/man3/shmem_putmem_nbi.3in | 171 + oshmem/shmem/man/man3/shmem_quiet.3in | 84 + oshmem/shmem/man/man3/shmem_realloc.3in | 1 + oshmem/shmem/man/man3/shmem_set_cache_inv.3in | 1 + .../man/man3/shmem_set_cache_line_inv.3in | 1 + oshmem/shmem/man/man3/shmem_set_lock.3in | 78 + .../shmem/man/man3/shmem_short_and_to_all.3in | 206 + oshmem/shmem/man/man3/shmem_short_g.3in | 1 + oshmem/shmem/man/man3/shmem_short_get.3in | 1 + oshmem/shmem/man/man3/shmem_short_get_nbi.3in | 1 + oshmem/shmem/man/man3/shmem_short_iget.3in | 217 + oshmem/shmem/man/man3/shmem_short_iput.3in | 220 + .../shmem/man/man3/shmem_short_max_to_all.3in | 238 + .../shmem/man/man3/shmem_short_min_to_all.3in | 234 + .../shmem/man/man3/shmem_short_or_to_all.3in | 202 + oshmem/shmem/man/man3/shmem_short_p.3in | 1 + .../man/man3/shmem_short_prod_to_all.3in | 259 + oshmem/shmem/man/man3/shmem_short_put.3in | 1 + oshmem/shmem/man/man3/shmem_short_put_nbi.3in | 1 + .../shmem/man/man3/shmem_short_sum_to_all.3in | 281 + oshmem/shmem/man/man3/shmem_short_wait.3in | 1 + .../shmem/man/man3/shmem_short_wait_until.3in | 1 + .../shmem/man/man3/shmem_short_xor_to_all.3in | 215 + oshmem/shmem/man/man3/shmem_swap.3in | 115 + oshmem/shmem/man/man3/shmem_test_lock.3in | 1 + oshmem/shmem/man/man3/shmem_udcflush.3in | 94 + oshmem/shmem/man/man3/shmem_udcflush_line.3in | 1 + oshmem/shmem/man/man3/shmem_wait.3in | 205 + oshmem/shmem/man/man3/shmem_wait_until.3in | 1 + oshmem/shmem/man/man3/shmemalign.3in | 1 + oshmem/shmem/man/man3/shrealloc.3in | 1 + oshmem/shmem/man/man3/start_pes.3in | 1 + oshmem/shmem/shmem_api_logger.h | 42 + oshmem/shmem/shmem_lock.h | 26 + oshmem/tools/Makefile.am | 20 + oshmem/tools/oshmem_info/Makefile.am | 81 + oshmem/tools/oshmem_info/help-oshmem-info.txt | 20 + oshmem/tools/oshmem_info/oshmem_info.1in | 205 + oshmem/tools/oshmem_info/oshmem_info.c | 191 + oshmem/tools/oshmem_info/oshmem_info.h | 33 + oshmem/tools/oshmem_info/param.c | 617 ++ oshmem/tools/wrappers/Makefile.am | 87 + .../wrappers/shmemcc-wrapper-data.txt.in | 38 + .../wrappers/shmemfort-wrapper-data.txt.in | 38 + oshmem/util/Makefile.am | 19 + oshmem/util/oshmem_util.c | 70 + oshmem/util/oshmem_util.h | 53 + test/Makefile.am | 28 + test/asm/Makefile.am | 92 + test/asm/atomic_barrier.c | 43 + test/asm/atomic_cmpset.c | 286 + test/asm/atomic_math.c | 138 + test/asm/atomic_spinlock.c | 130 + test/asm/run_tests | 27 + test/carto/carto-file | 39 + test/carto/carto_test.c | 182 + test/class/Makefile.am | 108 + test/class/ompi_rb_tree.c | 412 + test/class/opal_bitmap.c | 334 + test/class/opal_fifo.c | 264 + test/class/opal_hash_table.c | 299 + test/class/opal_lifo.c | 201 + test/class/opal_list.c | 349 + test/class/opal_pointer_array.c | 160 + test/class/opal_proc_table.c | 307 + test/class/opal_tree.c | 334 + test/class/opal_value_array.c | 120 + test/datatype/Makefile.am | 83 + test/datatype/checksum.c | 154 + test/datatype/ddt_lib.c | 688 ++ test/datatype/ddt_lib.h | 95 + test/datatype/ddt_pack.c | 402 + test/datatype/ddt_raw.c | 317 + test/datatype/ddt_test.c | 549 ++ test/datatype/external32.c | 228 + test/datatype/opal_datatype_test.c | 723 ++ test/datatype/opal_ddt_lib.c | 868 ++ test/datatype/opal_ddt_lib.h | 57 + test/datatype/position.c | 283 + test/datatype/position_noncontig.c | 250 + test/datatype/to_self.c | 444 + test/datatype/unpack_ooo.c | 316 + test/dss/Makefile.am | 15 + test/dss/dss_buffer.c | 977 ++ test/dss/dss_cmp.c | 621 ++ test/dss/dss_copy.c | 468 + test/dss/dss_payload.c | 229 + test/dss/dss_print.c | 508 + test/event/Makefile.am | 48 + test/event/event-test.c | 145 + test/event/signal-test.c | 69 + test/event/time-test.c | 71 + test/memchecker/Makefile.am | 64 + test/memchecker/irecv_init_check.c | 65 + test/memchecker/irecv_uninit_check.c | 64 + test/memchecker/non_blocking_recv_test.c | 59 + test/memchecker/non_blocking_send_test.c | 61 + test/monitoring/Makefile.am | 34 + test/monitoring/aggregate_profile.pl | 71 + test/monitoring/monitoring_prof.c | 255 + test/monitoring/monitoring_test.c | 259 + test/monitoring/profile2mat.pl | 123 + test/mpi/Makefile.am | 20 + test/mpi/environment/Makefile.am | 33 + test/mpi/environment/chello.c | 35 + test/mpi/environment/run_tests | 55 + test/mpi/run_tests | 56 + test/runtime/Makefile.am | 60 + test/runtime/README | 7 + test/runtime/opal_init_finalize.c | 40 + test/runtime/orte_init_finalize.c | 54 + test/runtime/sigchld.c | 90 + test/runtime/start_shut.c | 76 + test/support/Makefile.am | 36 + test/support/Makefile.options | 23 + test/support/support.c | 158 + test/support/support.h | 57 + test/threads/Makefile.am | 46 + test/threads/opal_condition.c | 120 + test/threads/opal_thread.c | 79 + test/util/Makefile.am | 126 + test/util/ompi_numtostr.c | 43 + test/util/opal_argv.c | 641 ++ test/util/opal_basename.c | 69 + test/util/opal_bit_ops.c | 218 + test/util/opal_error.c | 87 + test/util/opal_if.c | 136 + test/util/opal_os_create_dirpath.c | 163 + test/util/opal_os_path.c | 201 + test/util/opal_path_nfs.c | 235 + test/util/opal_timer.c | 63 + test/util/orte_session_dir.c | 379 + test/util/orte_universe_setup_file_io.c | 113 + 7775 files changed, 1295594 insertions(+) create mode 100644 AUTHORS create mode 100644 Doxyfile create mode 100644 HACKING create mode 100644 INSTALL create mode 100644 LICENSE create mode 100644 Makefile.am create mode 100644 Makefile.ompi-rules create mode 100644 NEWS create mode 100644 README create mode 100644 README.JAVA.txt create mode 100644 VERSION create mode 100755 autogen.pl create mode 100644 config/Makefile.am create mode 100644 config/Makefile.options create mode 100644 config/c_get_alignment.m4 create mode 100644 config/c_weak_symbols.m4 create mode 100755 config/distscript.sh create mode 100755 config/find_common_syms create mode 100644 config/ltmain_nag_pthread.diff create mode 100644 config/ltmain_pgi_tp.diff create mode 100644 config/ompi_check_libfca.m4 create mode 100644 config/ompi_check_libhcoll.m4 create mode 100644 config/ompi_check_lustre.m4 create mode 100644 config/ompi_check_mxm.m4 create mode 100644 config/ompi_check_plfs.m4 create mode 100644 config/ompi_check_psm.m4 create mode 100644 config/ompi_check_psm2.m4 create mode 100644 config/ompi_check_pvfs2.m4 create mode 100644 config/ompi_check_ucx.m4 create mode 100644 config/ompi_check_udapl.m4 create mode 100644 config/ompi_config_files.m4 create mode 100644 config/ompi_configure_options.m4 create mode 100644 config/ompi_contrib.m4 create mode 100644 config/ompi_cxx_find_exception_flags.m4 create mode 100644 config/ompi_cxx_find_template_parameters.m4 create mode 100644 config/ompi_cxx_find_template_repository.m4 create mode 100644 config/ompi_cxx_have_exceptions.m4 create mode 100644 config/ompi_endpoint_tag.m4 create mode 100644 config/ompi_ext.m4 create mode 100644 config/ompi_find_mpi_aint_count_offset.m4 create mode 100644 config/ompi_fortran_check.m4 create mode 100644 config/ompi_fortran_check_abstract.m4 create mode 100644 config/ompi_fortran_check_asynchronous.m4 create mode 100644 config/ompi_fortran_check_bind_c.m4 create mode 100644 config/ompi_fortran_check_c_funloc.m4 create mode 100644 config/ompi_fortran_check_f08_assumed_rank.m4 create mode 100644 config/ompi_fortran_check_ignore_tkr.m4 create mode 100644 config/ompi_fortran_check_interface.m4 create mode 100644 config/ompi_fortran_check_iso_fortran_env.m4 create mode 100644 config/ompi_fortran_check_logical_array.m4 create mode 100644 config/ompi_fortran_check_max_array_rank.m4 create mode 100644 config/ompi_fortran_check_optional_args.m4 create mode 100644 config/ompi_fortran_check_private.m4 create mode 100644 config/ompi_fortran_check_procedure.m4 create mode 100644 config/ompi_fortran_check_protected.m4 create mode 100644 config/ompi_fortran_check_real16_c_equiv.m4 create mode 100644 config/ompi_fortran_check_storage_size.m4 create mode 100644 config/ompi_fortran_check_type.m4 create mode 100644 config/ompi_fortran_check_use_only.m4 create mode 100644 config/ompi_fortran_find_ext_symbol_convention.m4 create mode 100644 config/ompi_fortran_find_module_include_flag.m4 create mode 100644 config/ompi_fortran_get_alignment.m4 create mode 100644 config/ompi_fortran_get_handle_max.m4 create mode 100644 config/ompi_fortran_get_kind_value.m4 create mode 100644 config/ompi_fortran_get_sizeof.m4 create mode 100644 config/ompi_fortran_get_value_true.m4 create mode 100644 config/ompi_interix.m4 create mode 100644 config/ompi_microsoft.m4 create mode 100644 config/ompi_setup_contrib.m4 create mode 100644 config/ompi_setup_cxx.m4 create mode 100644 config/ompi_setup_fc.m4 create mode 100644 config/ompi_setup_java.m4 create mode 100644 config/ompi_setup_mpi_ext.m4 create mode 100644 config/ompi_setup_mpi_fortran.m4 create mode 100644 config/ompi_setup_mpi_profiling.m4 create mode 100644 config/opal_case_sensitive_fs_setup.m4 create mode 100644 config/opal_check_alps.m4 create mode 100644 config/opal_check_attributes.m4 create mode 100644 config/opal_check_broken_qsort.m4 create mode 100644 config/opal_check_cma.m4 create mode 100644 config/opal_check_compiler_version.m4 create mode 100644 config/opal_check_compiler_works.m4 create mode 100644 config/opal_check_cray_pmi.m4 create mode 100644 config/opal_check_cuda.m4 create mode 100644 config/opal_check_icc.m4 create mode 100644 config/opal_check_ident.m4 create mode 100644 config/opal_check_knem.m4 create mode 100644 config/opal_check_libfabric.m4 create mode 100644 config/opal_check_libnl.m4 create mode 100644 config/opal_check_offsetof.m4 create mode 100644 config/opal_check_openfabrics.m4 create mode 100644 config/opal_check_os_flavors.m4 create mode 100644 config/opal_check_package.m4 create mode 100644 config/opal_check_pmi.m4 create mode 100644 config/opal_check_portals4.m4 create mode 100644 config/opal_check_ps.m4 create mode 100644 config/opal_check_pthread_pids.m4 create mode 100644 config/opal_check_singularity.m4 create mode 100644 config/opal_check_ugni.m4 create mode 100644 config/opal_check_vendor.m4 create mode 100644 config/opal_check_verbs.m4 create mode 100644 config/opal_check_version.m4 create mode 100644 config/opal_check_visibility.m4 create mode 100644 config/opal_check_withdir.m4 create mode 100644 config/opal_check_xpmem.m4 create mode 100644 config/opal_config_asm.m4 create mode 100644 config/opal_config_files.m4 create mode 100644 config/opal_config_pthreads.m4 create mode 100644 config/opal_config_subdir.m4 create mode 100644 config/opal_config_subdir_args.m4 create mode 100644 config/opal_config_threads.m4 create mode 100644 config/opal_configure_options.m4 create mode 100644 config/opal_ensure_contains_optflags.m4 create mode 100644 config/opal_find_type.m4 create mode 100644 config/opal_functions.m4 create mode 100644 config/opal_get_version.m4 create mode 100644 config/opal_get_version.m4sh create mode 100644 config/opal_lang_link_with_c.m4 create mode 100644 config/opal_load_platform.m4 create mode 100644 config/opal_mca.m4 create mode 100755 config/opal_mca_priority_sort.pl create mode 100644 config/opal_save_version.m4 create mode 100644 config/opal_search_libs.m4 create mode 100644 config/opal_set_lib_prefix.m4 create mode 100644 config/opal_set_mca_prefix.m4 create mode 100644 config/opal_setup_cc.m4 create mode 100644 config/opal_setup_cli.m4 create mode 100644 config/opal_setup_component_package.m4 create mode 100644 config/opal_setup_cxx.m4 create mode 100644 config/opal_setup_ft.m4 create mode 100644 config/opal_setup_java.m4 create mode 100644 config/opal_setup_wrappers.m4 create mode 100644 config/opal_strip_optflags.m4 create mode 100644 config/opal_summary.m4 create mode 100644 config/opal_try_assemble.m4 create mode 100644 config/orte_check_loadleveler.m4 create mode 100644 config/orte_check_lsf.m4 create mode 100644 config/orte_check_sge.m4 create mode 100644 config/orte_check_slurm.m4 create mode 100644 config/orte_check_tm.m4 create mode 100644 config/orte_config_files.m4 create mode 100644 config/orte_configure_options.m4 create mode 100644 config/orte_setup_debugger_flags.m4 create mode 100644 config/oshmem_config_files.m4 create mode 100644 config/oshmem_configure_options.m4 create mode 100644 config/oshmem_setup_profiling.m4 create mode 100644 config/pkg.m4 create mode 100644 configure.ac create mode 100644 contrib/Makefile.am create mode 100644 contrib/amca-param-sets/example.conf create mode 100644 contrib/amca-param-sets/ft-enable-cr create mode 100644 contrib/amca-param-sets/ft-enable-cr-recovery create mode 100644 contrib/annual-maintenance/convert-to-git.txt create mode 100755 contrib/annual-maintenance/find-committers-from-last-year.pl create mode 100644 contrib/build-mca-comps-outside-of-tree/Makefile.am create mode 100644 contrib/build-mca-comps-outside-of-tree/README.txt create mode 100755 contrib/build-mca-comps-outside-of-tree/autogen.sh create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2.addr.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2.c create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_addr.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_component.c create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_endpoint.c create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_endpoint.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_frag.c create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_frag.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_ft.c create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_ft.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_hdr.h create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_proc.c create mode 100644 contrib/build-mca-comps-outside-of-tree/btl_tcp2_proc.h create mode 100644 contrib/build-mca-comps-outside-of-tree/configure.ac create mode 100644 contrib/build-mca-comps-outside-of-tree/help-mpi-btl-tcp2.txt create mode 100644 contrib/build-server/README.txt create mode 100644 contrib/build-server/crontab.txt create mode 100755 contrib/build-server/hwloc-nightly-coverity.pl create mode 100755 contrib/build-server/hwloc-nightly-tarball.sh create mode 100755 contrib/build-server/hwloc-release.sh create mode 100755 contrib/build-server/install-autotools-set.sh create mode 100755 contrib/build-server/openmpi-nightly-coverity.pl create mode 100755 contrib/build-server/openmpi-nightly-tarball.sh create mode 100755 contrib/build-server/openmpi-release.sh create mode 100755 contrib/build-server/openmpi-update-www.open-mpi.org.sh create mode 100755 contrib/build-server/pmix-nightly-coverity.pl create mode 100755 contrib/build-server/pmix-nightly-tarball.sh create mode 100755 contrib/build-server/pmix-release.sh create mode 100755 contrib/build-server/remove-old.pl create mode 100755 contrib/check-btl-sm-diffs.pl create mode 100755 contrib/check-help-strings.pl create mode 100755 contrib/check-ob1-pml-diffs.pl create mode 100755 contrib/check-ob1-revision.pl create mode 100755 contrib/check-owner.pl create mode 100755 contrib/check_unnecessary_headers.sh create mode 100755 contrib/cleanperms create mode 100755 contrib/code_counter.pl create mode 100644 contrib/completion/mpirun.sh create mode 100644 contrib/completion/mpirun.zsh create mode 100644 contrib/coverity/coverity-model.c create mode 100755 contrib/dist/find-copyrights.pl create mode 100644 contrib/dist/linux/README create mode 100644 contrib/dist/linux/README.ompi-spec-generator create mode 100755 contrib/dist/linux/buildrpm.sh create mode 100755 contrib/dist/linux/buildswitcherrpm.sh create mode 100755 contrib/dist/linux/ompi-spec-generator.py create mode 100644 contrib/dist/linux/openmpi-switcher-modulefile.spec create mode 100644 contrib/dist/linux/openmpi-switcher-modulefile.tcl create mode 100644 contrib/dist/linux/openmpi.spec create mode 100644 contrib/dist/macosx-pkg/ReadMe.rtf create mode 100755 contrib/dist/macosx-pkg/buildpackage.sh create mode 100755 contrib/dist/make-authors.pl create mode 100755 contrib/dist/make-html-man-pages.pl create mode 100755 contrib/dist/make_dist_tarball create mode 120000 contrib/dist/make_tarball create mode 100644 contrib/dist/mofed/compile_debian_mlnx_example.in create mode 100644 contrib/dist/mofed/debian/changelog.in create mode 100644 contrib/dist/mofed/debian/compat create mode 100644 contrib/dist/mofed/debian/control.in create mode 100644 contrib/dist/mofed/debian/rules.in create mode 100644 contrib/dist/mofed/debian/source/format create mode 100755 contrib/find_occurence.pl create mode 100755 contrib/find_offenders.pl create mode 100755 contrib/fix_headers.pl create mode 100755 contrib/fix_indent.pl create mode 100755 contrib/gen_stats.pl create mode 100755 contrib/generate_file_list.pl create mode 100755 contrib/header_replacement.sh create mode 100644 contrib/headers.txt create mode 100644 contrib/infrastructure/README-setup-github-diff-emails.txt create mode 100644 contrib/infrastructure/README.txt create mode 100644 contrib/infrastructure/crontab-mpiteam-at-jaguar.crest.iu.edu.txt create mode 100644 contrib/infrastructure/crontab-mpiteam-at-lion.crest.iu.edu create mode 100644 contrib/infrastructure/gitdub-config.yml create mode 100755 contrib/infrastructure/github-send-commit-mails.pl create mode 100755 contrib/infrastructure/openmpi-update-www.open-mpi.org.sh create mode 100644 contrib/nightly/create_tarball.sh create mode 100755 contrib/nightly/reports/check_devel_headers.pl create mode 100755 contrib/nightly/reports/illegal_symbols_report.pl create mode 100755 contrib/nightly/update-component-owners-github-wiki.pl create mode 100755 contrib/ompi-time.sh create mode 100644 contrib/ompi_branch_check_revisions-v1.5.txt create mode 100755 contrib/ompi_branch_check_revisions.pl create mode 100644 contrib/ompi_cplusplus.sed create mode 100755 contrib/ompi_cplusplus.sh create mode 100644 contrib/ompi_cplusplus.txt create mode 100644 contrib/openmpi-valgrind.supp create mode 100644 contrib/platform/clang/align create mode 120000 contrib/platform/cray_xt3 create mode 120000 contrib/platform/cray_xt3_romio create mode 100644 contrib/platform/cray_xt_cnl_romio create mode 100755 contrib/platform/embedded/build_embedded.sh create mode 100644 contrib/platform/embedded/debug create mode 100755 contrib/platform/embedded/gen_embedded.sh create mode 100644 contrib/platform/embedded/optimized create mode 100644 contrib/platform/hadoop/cisco create mode 100644 contrib/platform/hadoop/cisco.conf create mode 100644 contrib/platform/hadoop/linux create mode 100644 contrib/platform/hadoop/linux.conf create mode 100644 contrib/platform/hadoop/mac create mode 100644 contrib/platform/hadoop/mac.conf create mode 100644 contrib/platform/ibm/debug-power6-gcc create mode 100644 contrib/platform/ibm/debug-power7-gcc create mode 100644 contrib/platform/ibm/debug-ppc32-gcc create mode 100644 contrib/platform/ibm/debug-ppc64-gcc create mode 100644 contrib/platform/ibm/optimized-power6-gcc create mode 100644 contrib/platform/ibm/optimized-power7-gcc create mode 100644 contrib/platform/ibm/optimized-ppc32-gcc create mode 100644 contrib/platform/ibm/optimized-ppc64-gcc create mode 100644 contrib/platform/intel/bend/ext create mode 100644 contrib/platform/intel/bend/ext.conf create mode 100644 contrib/platform/intel/bend/linux create mode 100644 contrib/platform/intel/bend/linux-optimized create mode 100644 contrib/platform/intel/bend/linux-optimized.conf create mode 100644 contrib/platform/intel/bend/linux-orcm.conf create mode 100644 contrib/platform/intel/bend/linux.conf create mode 100644 contrib/platform/intel/bend/mac create mode 100644 contrib/platform/intel/bend/mac-optimized create mode 100644 contrib/platform/intel/bend/mac-optimized.conf create mode 100644 contrib/platform/intel/bend/mac-orcm.conf create mode 100644 contrib/platform/intel/bend/mac.conf create mode 100644 contrib/platform/iu/odin/debug create mode 100644 contrib/platform/iu/odin/debug-nopmi create mode 100644 contrib/platform/iu/odin/debug-nopmi.conf create mode 100644 contrib/platform/iu/odin/debug.conf create mode 100644 contrib/platform/iu/odin/optimized create mode 100644 contrib/platform/iu/odin/optimized.conf create mode 100644 contrib/platform/iu/odin/static create mode 100644 contrib/platform/iu/odin/static.conf create mode 100644 contrib/platform/lanl/cray_xc_cle5.2/debug-common create mode 100644 contrib/platform/lanl/cray_xc_cle5.2/debug-lustre create mode 100644 contrib/platform/lanl/cray_xc_cle5.2/debug-lustre.conf create mode 100644 contrib/platform/lanl/cray_xc_cle5.2/optimized-common create mode 100644 contrib/platform/lanl/cray_xc_cle5.2/optimized-lustre create mode 100644 contrib/platform/lanl/cray_xc_cle5.2/optimized-lustre.conf create mode 100644 contrib/platform/lanl/cray_xe6/cray-common create mode 100644 contrib/platform/lanl/cray_xe6/debug-common create mode 100644 contrib/platform/lanl/cray_xe6/debug-lustre create mode 100644 contrib/platform/lanl/cray_xe6/debug-lustre.conf create mode 100644 contrib/platform/lanl/cray_xe6/gnu-common create mode 100644 contrib/platform/lanl/cray_xe6/intel-common create mode 100644 contrib/platform/lanl/cray_xe6/optimized-common create mode 100644 contrib/platform/lanl/cray_xe6/optimized-lustre create mode 100644 contrib/platform/lanl/cray_xe6/optimized-lustre.conf create mode 100644 contrib/platform/lanl/darwin/darwin-common create mode 100644 contrib/platform/lanl/darwin/debug create mode 100644 contrib/platform/lanl/darwin/debug-common create mode 100644 contrib/platform/lanl/darwin/debug-mic create mode 100644 contrib/platform/lanl/darwin/debug-mic.conf create mode 100644 contrib/platform/lanl/darwin/debug.conf create mode 100644 contrib/platform/lanl/darwin/mic-common create mode 100644 contrib/platform/lanl/darwin/optimized create mode 100644 contrib/platform/lanl/darwin/optimized-common create mode 100644 contrib/platform/lanl/darwin/optimized-mic create mode 100644 contrib/platform/lanl/darwin/optimized-mic.conf create mode 100644 contrib/platform/lanl/darwin/optimized.conf create mode 100644 contrib/platform/lanl/mac.conf create mode 100644 contrib/platform/lanl/macosx-dynamic create mode 100644 contrib/platform/lanl/macosx-dynamic-java create mode 100644 contrib/platform/lanl/macosx-dynamic-java.conf create mode 100644 contrib/platform/lanl/macosx-dynamic-optimized create mode 100644 contrib/platform/lanl/macosx-dynamic-optimized.conf create mode 100644 contrib/platform/lanl/macosx-dynamic.conf create mode 100644 contrib/platform/lanl/macosx-static-leopard create mode 100644 contrib/platform/lanl/macosx-static-leopard.conf create mode 100644 contrib/platform/lanl/macosx-static-tiger create mode 100644 contrib/platform/lanl/toss/debug create mode 100644 contrib/platform/lanl/toss/debug-common create mode 100644 contrib/platform/lanl/toss/debug-mlx create mode 100644 contrib/platform/lanl/toss/debug-mlx.conf create mode 100644 contrib/platform/lanl/toss/debug.conf create mode 100644 contrib/platform/lanl/toss/optimized create mode 100644 contrib/platform/lanl/toss/optimized-common create mode 100644 contrib/platform/lanl/toss/optimized-mlx create mode 100644 contrib/platform/lanl/toss/optimized-mlx.conf create mode 100644 contrib/platform/lanl/toss/optimized.conf create mode 100644 contrib/platform/lanl/toss/toss-common create mode 100644 contrib/platform/mellanox/optimized create mode 100644 contrib/platform/mellanox/optimized.conf create mode 100644 contrib/platform/optimized create mode 100644 contrib/platform/ornl/cray_xt_cnl_romio create mode 100644 contrib/platform/ornl/cray_xt_cnl_romio_debug create mode 100755 contrib/platform/ornl/ornl_configure.gnu create mode 100755 contrib/platform/ornl/ornl_configure.pgi create mode 100755 contrib/platform/ornl/ornl_configure_self_contained create mode 100644 contrib/platform/ps3 create mode 100644 contrib/platform/redstorm create mode 100644 contrib/platform/snl/kitten create mode 100644 contrib/platform/snl/portals4-m5 create mode 100644 contrib/platform/snl/portals4-orte create mode 100644 contrib/platform/utk/cray_xc30_darter create mode 100755 contrib/purge-tab-indents.pl create mode 100755 contrib/purge-trailing-blank-lines.pl create mode 100644 contrib/scaling/Makefile create mode 100644 contrib/scaling/Makefile.include create mode 100644 contrib/scaling/mpi_no_op.c create mode 100644 contrib/scaling/orte_no_op.c create mode 100755 contrib/scaling/scaling.pl create mode 100755 contrib/search_compare.pl create mode 100755 contrib/search_replace.pl create mode 100644 contrib/spread/spread-init.txt create mode 100644 contrib/spread/spread.conf create mode 100755 contrib/submit_test.pl create mode 100755 contrib/symbol-hiding.pl create mode 100755 contrib/test_headers_in_ompi.pl create mode 100644 contrib/uncrustify_open_mpi.cfg create mode 100755 contrib/update-my-copyright.pl create mode 100755 contrib/whitespace-purge.sh create mode 100644 examples/Hello.java create mode 100644 examples/Makefile create mode 100644 examples/Makefile.include create mode 100644 examples/README create mode 100644 examples/Ring.java create mode 100644 examples/connectivity_c.c create mode 100644 examples/dtrace/Makefile create mode 100644 examples/dtrace/README create mode 100644 examples/dtrace/mpicommcheck.d create mode 100644 examples/dtrace/mpicommleak.c create mode 100644 examples/dtrace/mpicount.d create mode 100644 examples/dtrace/mpitrace.d create mode 100644 examples/dtrace/mpitruss.d create mode 100755 examples/dtrace/myppriv.sh create mode 100755 examples/dtrace/partrace.sh create mode 100644 examples/hello_c.c create mode 100644 examples/hello_cxx.cc create mode 100644 examples/hello_mpifh.f create mode 100644 examples/hello_oshmem_c.c create mode 100644 examples/hello_oshmemfh.f90 create mode 100644 examples/hello_usempi.f90 create mode 100644 examples/hello_usempif08.f90 create mode 100644 examples/oshmem_circular_shift.c create mode 100644 examples/oshmem_max_reduction.c create mode 100644 examples/oshmem_shmalloc.c create mode 100644 examples/oshmem_strided_puts.c create mode 100644 examples/oshmem_symmetric_data.c create mode 100644 examples/ring_c.c create mode 100644 examples/ring_cxx.cc create mode 100644 examples/ring_mpifh.f create mode 100644 examples/ring_oshmem_c.c create mode 100644 examples/ring_oshmemfh.f90 create mode 100644 examples/ring_usempi.f90 create mode 100644 examples/ring_usempif08.f90 create mode 100644 ompi/Makefile.am create mode 100644 ompi/attribute/Makefile.am create mode 100644 ompi/attribute/attribute.c create mode 100644 ompi/attribute/attribute.h create mode 100644 ompi/attribute/attribute_predefined.c create mode 100644 ompi/class/Makefile.am create mode 100644 ompi/class/ompi_seq_tracker.c create mode 100644 ompi/class/ompi_seq_tracker.h create mode 100644 ompi/communicator/Makefile.am create mode 100644 ompi/communicator/comm.c create mode 100644 ompi/communicator/comm_cid.c create mode 100644 ompi/communicator/comm_helpers.c create mode 100644 ompi/communicator/comm_helpers.h create mode 100644 ompi/communicator/comm_init.c create mode 100644 ompi/communicator/comm_request.c create mode 100644 ompi/communicator/comm_request.h create mode 100644 ompi/communicator/communicator.h create mode 100644 ompi/contrib/README.txt create mode 100644 ompi/contrib/libompitrace/Makefile.am create mode 100644 ompi/contrib/libompitrace/abort.c create mode 100644 ompi/contrib/libompitrace/accumulate.c create mode 100644 ompi/contrib/libompitrace/add_error_class.c create mode 100644 ompi/contrib/libompitrace/add_error_code.c create mode 100644 ompi/contrib/libompitrace/add_error_string.c create mode 100644 ompi/contrib/libompitrace/address.c create mode 100644 ompi/contrib/libompitrace/allgather.c create mode 100644 ompi/contrib/libompitrace/allgatherv.c create mode 100644 ompi/contrib/libompitrace/alloc_mem.c create mode 100644 ompi/contrib/libompitrace/allreduce.c create mode 100644 ompi/contrib/libompitrace/barrier.c create mode 100644 ompi/contrib/libompitrace/bcast.c create mode 100644 ompi/contrib/libompitrace/configure.m4 create mode 100644 ompi/contrib/libompitrace/finalize.c create mode 100644 ompi/contrib/libompitrace/init.c create mode 100644 ompi/contrib/libompitrace/isend.c create mode 100644 ompi/contrib/libompitrace/recv.c create mode 100644 ompi/contrib/libompitrace/reduce.c create mode 100644 ompi/contrib/libompitrace/request_free.c create mode 100644 ompi/contrib/libompitrace/send.c create mode 100644 ompi/contrib/libompitrace/sendrecv.c create mode 100644 ompi/datatype/Makefile.am create mode 100644 ompi/datatype/ompi_datatype.h create mode 100644 ompi/datatype/ompi_datatype_args.c create mode 100644 ompi/datatype/ompi_datatype_create.c create mode 100644 ompi/datatype/ompi_datatype_create_contiguous.c create mode 100644 ompi/datatype/ompi_datatype_create_darray.c create mode 100644 ompi/datatype/ompi_datatype_create_indexed.c create mode 100644 ompi/datatype/ompi_datatype_create_struct.c create mode 100644 ompi/datatype/ompi_datatype_create_subarray.c create mode 100644 ompi/datatype/ompi_datatype_create_vector.c create mode 100644 ompi/datatype/ompi_datatype_external.c create mode 100644 ompi/datatype/ompi_datatype_external32.c create mode 100644 ompi/datatype/ompi_datatype_get_elements.c create mode 100644 ompi/datatype/ompi_datatype_internal.h create mode 100644 ompi/datatype/ompi_datatype_match_size.c create mode 100644 ompi/datatype/ompi_datatype_module.c create mode 100644 ompi/datatype/ompi_datatype_sndrcv.c create mode 100644 ompi/debuggers/MPI_Handles_interface.txt create mode 100644 ompi/debuggers/Makefile.am create mode 100644 ompi/debuggers/debuggers.h create mode 100644 ompi/debuggers/dlopen_test.c create mode 100644 ompi/debuggers/mpihandles_interface.h create mode 100644 ompi/debuggers/msgq_interface.h create mode 100644 ompi/debuggers/ompi_common_dll.c create mode 100644 ompi/debuggers/ompi_common_dll_defs.h create mode 100644 ompi/debuggers/ompi_debugger_canary.c create mode 100644 ompi/debuggers/ompi_debuggers.c create mode 100644 ompi/debuggers/ompi_mpihandles_dll.c create mode 100644 ompi/debuggers/ompi_mpihandles_dll_defs.h create mode 100644 ompi/debuggers/ompi_msgq_dll.c create mode 100644 ompi/debuggers/ompi_msgq_dll_defs.h create mode 100644 ompi/debuggers/predefined_gap_test.c create mode 100644 ompi/debuggers/predefined_pad_test.c create mode 100644 ompi/debuggers/tv-debugger-attach.txt create mode 100644 ompi/dpm/Makefile.am create mode 100644 ompi/dpm/dpm.c create mode 100644 ompi/dpm/dpm.h create mode 100644 ompi/errhandler/Makefile.am create mode 100644 ompi/errhandler/errcode-internal.c create mode 100644 ompi/errhandler/errcode-internal.h create mode 100644 ompi/errhandler/errcode.c create mode 100644 ompi/errhandler/errcode.h create mode 100644 ompi/errhandler/errhandler.c create mode 100644 ompi/errhandler/errhandler.h create mode 100644 ompi/errhandler/errhandler_invoke.c create mode 100644 ompi/errhandler/errhandler_predefined.c create mode 100644 ompi/errhandler/errhandler_predefined.h create mode 100644 ompi/errhandler/help-mpi-errors.txt create mode 100644 ompi/etc/Makefile.am create mode 100644 ompi/etc/openmpi-totalview.tcl create mode 100644 ompi/file/Makefile.am create mode 100644 ompi/file/file.c create mode 100644 ompi/file/file.h create mode 100644 ompi/group/Makefile.am create mode 100644 ompi/group/group.c create mode 100644 ompi/group/group.h create mode 100644 ompi/group/group_bitmap.c create mode 100644 ompi/group/group_dbg.h create mode 100644 ompi/group/group_init.c create mode 100644 ompi/group/group_plist.c create mode 100644 ompi/group/group_set_rank.c create mode 100644 ompi/group/group_sporadic.c create mode 100644 ompi/group/group_strided.c create mode 100644 ompi/include/Makefile.am create mode 100644 ompi/include/mpi.h.in create mode 100644 ompi/include/mpif-config.h.in create mode 100644 ompi/include/mpif-externals.h create mode 100644 ompi/include/mpif-sentinels.h create mode 100755 ompi/include/mpif-values.pl create mode 100644 ompi/include/mpif.h.in create mode 100644 ompi/include/ompi/Makefile.am create mode 100644 ompi/include/ompi/constants.h create mode 100644 ompi/include/ompi/memchecker.h create mode 100644 ompi/include/ompi/totalview.h create mode 100644 ompi/include/ompi/types.h create mode 100644 ompi/include/ompi/version.h.in create mode 100644 ompi/include/ompi_config.h create mode 100644 ompi/info/Makefile.am create mode 100644 ompi/info/info.c create mode 100644 ompi/info/info.h create mode 100644 ompi/mca/Makefile.am create mode 100644 ompi/mca/bcol/Makefile.am create mode 100644 ompi/mca/bcol/base/Makefile.am create mode 100644 ompi/mca/bcol/base/base.h create mode 100644 ompi/mca/bcol/base/bcol_base_frame.c create mode 100644 ompi/mca/bcol/base/bcol_base_init.c create mode 100644 ompi/mca/bcol/base/owner.txt create mode 100644 ompi/mca/bcol/basesmuma/Makefile.am create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma.h create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_allgather.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_allreduce.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_bcast.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_bcast_prime.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_buf_mgmt.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_component.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_fanin.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_fanout.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_gather.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_lmsg_bcast.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_lmsg_bcast.h create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_lmsg_knomial_bcast.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_mem_mgmt.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_module.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_progress.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_rd_barrier.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_rd_nb_barrier.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_reduce.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_reduce.h create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_rk_barrier.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_setup.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.h create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_utils.c create mode 100644 ompi/mca/bcol/basesmuma/bcol_basesmuma_utils.h create mode 100644 ompi/mca/bcol/basesmuma/owner.txt create mode 100644 ompi/mca/bcol/bcol.h create mode 100644 ompi/mca/bcol/iboffload/.opal_ignore create mode 100644 ompi/mca/bcol/iboffload/Makefile.am create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_allgather.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_allreduce.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_barrier.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_bcast.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_bcast.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_collfrag.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_collfrag.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_collreq.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_collreq.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_component.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_device.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_endpoint.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_endpoint.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_fanin.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_fanout.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_frag.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_frag.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_mca.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_mca.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_module.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_qp_info.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_qp_info.h create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_task.c create mode 100644 ompi/mca/bcol/iboffload/bcol_iboffload_task.h create mode 100644 ompi/mca/bcol/iboffload/configure.m4 create mode 100644 ompi/mca/bcol/iboffload/owner.txt create mode 100644 ompi/mca/bcol/ptpcoll/Makefile.am create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll.h create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_allgather.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_allreduce.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_allreduce.h create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_barrier.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_bcast.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_bcast.h create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_component.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_fanin.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_fanout.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_mca.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_mca.h create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_module.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_reduce.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_reduce.h create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_utils.c create mode 100644 ompi/mca/bcol/ptpcoll/bcol_ptpcoll_utils.h create mode 100644 ompi/mca/bcol/ptpcoll/owner.txt create mode 100644 ompi/mca/bml/Makefile.am create mode 100644 ompi/mca/bml/base/Makefile.am create mode 100644 ompi/mca/bml/base/base.h create mode 100644 ompi/mca/bml/base/bml_base_btl.c create mode 100644 ompi/mca/bml/base/bml_base_btl.h create mode 100644 ompi/mca/bml/base/bml_base_endpoint.c create mode 100644 ompi/mca/bml/base/bml_base_frame.c create mode 100644 ompi/mca/bml/base/bml_base_ft.c create mode 100644 ompi/mca/bml/base/bml_base_init.c create mode 100644 ompi/mca/bml/base/owner.txt create mode 100644 ompi/mca/bml/bml.h create mode 100644 ompi/mca/bml/r2/Makefile.am create mode 100644 ompi/mca/bml/r2/bml_r2.c create mode 100644 ompi/mca/bml/r2/bml_r2.h create mode 100644 ompi/mca/bml/r2/bml_r2_component.c create mode 100644 ompi/mca/bml/r2/bml_r2_ft.c create mode 100644 ompi/mca/bml/r2/bml_r2_ft.h create mode 100644 ompi/mca/bml/r2/configure.m4 create mode 100644 ompi/mca/bml/r2/help-mca-bml-r2.txt create mode 100644 ompi/mca/bml/r2/owner.txt create mode 100644 ompi/mca/coll/Makefile.am create mode 100644 ompi/mca/coll/base/Makefile.am create mode 100644 ompi/mca/coll/base/README.memory_management create mode 100644 ompi/mca/coll/base/base.h create mode 100644 ompi/mca/coll/base/coll_base_allgather.c create mode 100644 ompi/mca/coll/base/coll_base_allgatherv.c create mode 100644 ompi/mca/coll/base/coll_base_allreduce.c create mode 100644 ompi/mca/coll/base/coll_base_alltoall.c create mode 100644 ompi/mca/coll/base/coll_base_alltoallv.c create mode 100644 ompi/mca/coll/base/coll_base_barrier.c create mode 100644 ompi/mca/coll/base/coll_base_bcast.c create mode 100644 ompi/mca/coll/base/coll_base_comm_select.c create mode 100644 ompi/mca/coll/base/coll_base_comm_unselect.c create mode 100644 ompi/mca/coll/base/coll_base_find_available.c create mode 100644 ompi/mca/coll/base/coll_base_frame.c create mode 100644 ompi/mca/coll/base/coll_base_functions.h create mode 100644 ompi/mca/coll/base/coll_base_gather.c create mode 100644 ompi/mca/coll/base/coll_base_reduce.c create mode 100644 ompi/mca/coll/base/coll_base_reduce_scatter.c create mode 100644 ompi/mca/coll/base/coll_base_scatter.c create mode 100644 ompi/mca/coll/base/coll_base_topo.c create mode 100644 ompi/mca/coll/base/coll_base_topo.h create mode 100644 ompi/mca/coll/base/coll_base_util.c create mode 100644 ompi/mca/coll/base/coll_base_util.h create mode 100644 ompi/mca/coll/base/coll_tags.h create mode 100644 ompi/mca/coll/base/help-mca-coll-base.txt create mode 100644 ompi/mca/coll/base/owner.txt create mode 100644 ompi/mca/coll/basic/Makefile.am create mode 100644 ompi/mca/coll/basic/coll_basic.h create mode 100644 ompi/mca/coll/basic/coll_basic_allgather.c create mode 100644 ompi/mca/coll/basic/coll_basic_allgatherv.c create mode 100644 ompi/mca/coll/basic/coll_basic_allreduce.c create mode 100644 ompi/mca/coll/basic/coll_basic_alltoall.c create mode 100644 ompi/mca/coll/basic/coll_basic_alltoallv.c create mode 100644 ompi/mca/coll/basic/coll_basic_alltoallw.c create mode 100644 ompi/mca/coll/basic/coll_basic_barrier.c create mode 100644 ompi/mca/coll/basic/coll_basic_bcast.c create mode 100644 ompi/mca/coll/basic/coll_basic_component.c create mode 100644 ompi/mca/coll/basic/coll_basic_exscan.c create mode 100644 ompi/mca/coll/basic/coll_basic_gather.c create mode 100644 ompi/mca/coll/basic/coll_basic_gatherv.c create mode 100644 ompi/mca/coll/basic/coll_basic_module.c create mode 100644 ompi/mca/coll/basic/coll_basic_neighbor_allgather.c create mode 100644 ompi/mca/coll/basic/coll_basic_neighbor_allgatherv.c create mode 100644 ompi/mca/coll/basic/coll_basic_neighbor_alltoall.c create mode 100644 ompi/mca/coll/basic/coll_basic_neighbor_alltoallv.c create mode 100644 ompi/mca/coll/basic/coll_basic_neighbor_alltoallw.c create mode 100644 ompi/mca/coll/basic/coll_basic_reduce.c create mode 100644 ompi/mca/coll/basic/coll_basic_reduce_scatter.c create mode 100644 ompi/mca/coll/basic/coll_basic_reduce_scatter_block.c create mode 100644 ompi/mca/coll/basic/coll_basic_scan.c create mode 100644 ompi/mca/coll/basic/coll_basic_scatter.c create mode 100644 ompi/mca/coll/basic/coll_basic_scatterv.c create mode 100644 ompi/mca/coll/basic/owner.txt create mode 100644 ompi/mca/coll/coll.h create mode 100644 ompi/mca/coll/cuda/Makefile.am create mode 100644 ompi/mca/coll/cuda/coll_cuda.h create mode 100644 ompi/mca/coll/cuda/coll_cuda_allreduce.c create mode 100644 ompi/mca/coll/cuda/coll_cuda_component.c create mode 100644 ompi/mca/coll/cuda/coll_cuda_exscan.c create mode 100644 ompi/mca/coll/cuda/coll_cuda_module.c create mode 100644 ompi/mca/coll/cuda/coll_cuda_reduce.c create mode 100644 ompi/mca/coll/cuda/coll_cuda_reduce_scatter_block.c create mode 100644 ompi/mca/coll/cuda/coll_cuda_scan.c create mode 100644 ompi/mca/coll/cuda/configure.m4 create mode 100644 ompi/mca/coll/cuda/help-mpi-coll-cuda.txt create mode 100644 ompi/mca/coll/cuda/owner.txt create mode 100644 ompi/mca/coll/demo/.opal_ignore create mode 100644 ompi/mca/coll/demo/Makefile.am create mode 100644 ompi/mca/coll/demo/coll_demo.h create mode 100644 ompi/mca/coll/demo/coll_demo_allgather.c create mode 100644 ompi/mca/coll/demo/coll_demo_allgatherv.c create mode 100644 ompi/mca/coll/demo/coll_demo_allreduce.c create mode 100644 ompi/mca/coll/demo/coll_demo_alltoall.c create mode 100644 ompi/mca/coll/demo/coll_demo_alltoallv.c create mode 100644 ompi/mca/coll/demo/coll_demo_alltoallw.c create mode 100644 ompi/mca/coll/demo/coll_demo_barrier.c create mode 100644 ompi/mca/coll/demo/coll_demo_bcast.c create mode 100644 ompi/mca/coll/demo/coll_demo_component.c create mode 100644 ompi/mca/coll/demo/coll_demo_exscan.c create mode 100644 ompi/mca/coll/demo/coll_demo_gather.c create mode 100644 ompi/mca/coll/demo/coll_demo_gatherv.c create mode 100644 ompi/mca/coll/demo/coll_demo_module.c create mode 100644 ompi/mca/coll/demo/coll_demo_reduce.c create mode 100644 ompi/mca/coll/demo/coll_demo_reduce_scatter.c create mode 100644 ompi/mca/coll/demo/coll_demo_scan.c create mode 100644 ompi/mca/coll/demo/coll_demo_scatter.c create mode 100644 ompi/mca/coll/demo/coll_demo_scatterv.c create mode 100644 ompi/mca/coll/demo/configure.stub create mode 100644 ompi/mca/coll/demo/owner.txt create mode 100644 ompi/mca/coll/fca/Makefile.am create mode 100644 ompi/mca/coll/fca/coll_fca.h create mode 100644 ompi/mca/coll/fca/coll_fca_api.h create mode 100644 ompi/mca/coll/fca/coll_fca_component.c create mode 100644 ompi/mca/coll/fca/coll_fca_convertor.h create mode 100644 ompi/mca/coll/fca/coll_fca_debug.h create mode 100644 ompi/mca/coll/fca/coll_fca_module.c create mode 100644 ompi/mca/coll/fca/coll_fca_ops.c create mode 100644 ompi/mca/coll/fca/configure.m4 create mode 100644 ompi/mca/coll/fca/owner.txt create mode 100644 ompi/mca/coll/hcoll/Makefile.am create mode 100644 ompi/mca/coll/hcoll/coll_hcoll.h create mode 100644 ompi/mca/coll/hcoll/coll_hcoll_component.c create mode 100644 ompi/mca/coll/hcoll/coll_hcoll_debug.h create mode 100644 ompi/mca/coll/hcoll/coll_hcoll_dtypes.h create mode 100644 ompi/mca/coll/hcoll/coll_hcoll_module.c create mode 100644 ompi/mca/coll/hcoll/coll_hcoll_ops.c create mode 100644 ompi/mca/coll/hcoll/coll_hcoll_rte.c create mode 100644 ompi/mca/coll/hcoll/configure.m4 create mode 100644 ompi/mca/coll/hcoll/owner.txt create mode 100644 ompi/mca/coll/inter/Makefile.am create mode 100644 ompi/mca/coll/inter/coll_inter.c create mode 100644 ompi/mca/coll/inter/coll_inter.h create mode 100644 ompi/mca/coll/inter/coll_inter_allgather.c create mode 100644 ompi/mca/coll/inter/coll_inter_allgatherv.c create mode 100644 ompi/mca/coll/inter/coll_inter_allreduce.c create mode 100644 ompi/mca/coll/inter/coll_inter_bcast.c create mode 100644 ompi/mca/coll/inter/coll_inter_component.c create mode 100644 ompi/mca/coll/inter/coll_inter_gather.c create mode 100644 ompi/mca/coll/inter/coll_inter_gatherv.c create mode 100644 ompi/mca/coll/inter/coll_inter_reduce.c create mode 100644 ompi/mca/coll/inter/coll_inter_scatter.c create mode 100644 ompi/mca/coll/inter/coll_inter_scatterv.c create mode 100644 ompi/mca/coll/inter/owner.txt create mode 100644 ompi/mca/coll/libnbc/Makefile.am create mode 100644 ompi/mca/coll/libnbc/coll_libnbc.h create mode 100644 ompi/mca/coll/libnbc/coll_libnbc_component.c create mode 100644 ompi/mca/coll/libnbc/libdict/dict.c create mode 100644 ompi/mca/coll/libnbc/libdict/dict.h create mode 100644 ompi/mca/coll/libnbc/libdict/dict_private.h create mode 100644 ompi/mca/coll/libnbc/libdict/hb_tree.c create mode 100644 ompi/mca/coll/libnbc/libdict/hb_tree.h create mode 100644 ompi/mca/coll/libnbc/nbc.c create mode 100644 ompi/mca/coll/libnbc/nbc_iallgather.c create mode 100644 ompi/mca/coll/libnbc/nbc_iallgatherv.c create mode 100644 ompi/mca/coll/libnbc/nbc_iallreduce.c create mode 100644 ompi/mca/coll/libnbc/nbc_ialltoall.c create mode 100644 ompi/mca/coll/libnbc/nbc_ialltoallv.c create mode 100644 ompi/mca/coll/libnbc/nbc_ialltoallw.c create mode 100644 ompi/mca/coll/libnbc/nbc_ibarrier.c create mode 100644 ompi/mca/coll/libnbc/nbc_ibcast.c create mode 100644 ompi/mca/coll/libnbc/nbc_ibcast_inter.c create mode 100644 ompi/mca/coll/libnbc/nbc_iexscan.c create mode 100644 ompi/mca/coll/libnbc/nbc_igather.c create mode 100644 ompi/mca/coll/libnbc/nbc_igatherv.c create mode 100644 ompi/mca/coll/libnbc/nbc_ineighbor_allgather.c create mode 100644 ompi/mca/coll/libnbc/nbc_ineighbor_allgatherv.c create mode 100644 ompi/mca/coll/libnbc/nbc_ineighbor_alltoall.c create mode 100644 ompi/mca/coll/libnbc/nbc_ineighbor_alltoallv.c create mode 100644 ompi/mca/coll/libnbc/nbc_ineighbor_alltoallw.c create mode 100644 ompi/mca/coll/libnbc/nbc_internal.h create mode 100644 ompi/mca/coll/libnbc/nbc_ireduce.c create mode 100644 ompi/mca/coll/libnbc/nbc_ireduce_scatter.c create mode 100644 ompi/mca/coll/libnbc/nbc_ireduce_scatter_block.c create mode 100644 ompi/mca/coll/libnbc/nbc_iscan.c create mode 100644 ompi/mca/coll/libnbc/nbc_iscatter.c create mode 100644 ompi/mca/coll/libnbc/nbc_iscatterv.c create mode 100644 ompi/mca/coll/libnbc/nbc_neighbor_helpers.c create mode 100644 ompi/mca/coll/libnbc/owner.txt create mode 100644 ompi/mca/coll/ml/Makefile.am create mode 100644 ompi/mca/coll/ml/coll_ml.h create mode 100644 ompi/mca/coll/ml/coll_ml_allgather.c create mode 100644 ompi/mca/coll/ml/coll_ml_allocation.c create mode 100644 ompi/mca/coll/ml/coll_ml_allocation.h create mode 100644 ompi/mca/coll/ml/coll_ml_allreduce.c create mode 100644 ompi/mca/coll/ml/coll_ml_barrier.c create mode 100644 ompi/mca/coll/ml/coll_ml_bcast.c create mode 100644 ompi/mca/coll/ml/coll_ml_colls.h create mode 100644 ompi/mca/coll/ml/coll_ml_component.c create mode 100644 ompi/mca/coll/ml/coll_ml_config.c create mode 100644 ompi/mca/coll/ml/coll_ml_config.h create mode 100644 ompi/mca/coll/ml/coll_ml_copy_fns.c create mode 100644 ompi/mca/coll/ml/coll_ml_custom_utils.c create mode 100644 ompi/mca/coll/ml/coll_ml_custom_utils.h create mode 100644 ompi/mca/coll/ml/coll_ml_descriptors.c create mode 100644 ompi/mca/coll/ml/coll_ml_functions.h create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithm_memsync_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_allgather_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_allreduce_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_barrier_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_bcast_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_common_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_common_setup.h create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_reduce_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_hier_algorithms_setup.c create mode 100644 ompi/mca/coll/ml/coll_ml_inlines.h create mode 100644 ompi/mca/coll/ml/coll_ml_lex.h create mode 100644 ompi/mca/coll/ml/coll_ml_lex.l create mode 100644 ompi/mca/coll/ml/coll_ml_lmngr.c create mode 100644 ompi/mca/coll/ml/coll_ml_lmngr.h create mode 100644 ompi/mca/coll/ml/coll_ml_mca.c create mode 100644 ompi/mca/coll/ml/coll_ml_mca.h create mode 100644 ompi/mca/coll/ml/coll_ml_memsync.c create mode 100644 ompi/mca/coll/ml/coll_ml_module.c create mode 100644 ompi/mca/coll/ml/coll_ml_payload_buffers.h create mode 100644 ompi/mca/coll/ml/coll_ml_progress.c create mode 100644 ompi/mca/coll/ml/coll_ml_reduce.c create mode 100644 ompi/mca/coll/ml/coll_ml_resource_affinity.c create mode 100644 ompi/mca/coll/ml/coll_ml_resource_affinity.h create mode 100644 ompi/mca/coll/ml/coll_ml_select.c create mode 100644 ompi/mca/coll/ml/coll_ml_select.h create mode 100644 ompi/mca/coll/ml/common_sym_whitelist.txt create mode 100644 ompi/mca/coll/ml/help-mpi-coll-ml.txt create mode 100644 ompi/mca/coll/ml/mca-coll-ml.config create mode 100644 ompi/mca/coll/ml/owner.txt create mode 100644 ompi/mca/coll/portals4/Makefile.am create mode 100644 ompi/mca/coll/portals4/coll_portals4.h create mode 100644 ompi/mca/coll/portals4/coll_portals4_allreduce.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_barrier.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_bcast.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_component.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_gather.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_reduce.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_request.c create mode 100644 ompi/mca/coll/portals4/coll_portals4_request.h create mode 100644 ompi/mca/coll/portals4/coll_portals4_scatter.c create mode 100644 ompi/mca/coll/portals4/configure.m4 create mode 100644 ompi/mca/coll/portals4/owner.txt create mode 100644 ompi/mca/coll/self/Makefile.am create mode 100644 ompi/mca/coll/self/coll_self.h create mode 100644 ompi/mca/coll/self/coll_self_allgather.c create mode 100644 ompi/mca/coll/self/coll_self_allgatherv.c create mode 100644 ompi/mca/coll/self/coll_self_allreduce.c create mode 100644 ompi/mca/coll/self/coll_self_alltoall.c create mode 100644 ompi/mca/coll/self/coll_self_alltoallv.c create mode 100644 ompi/mca/coll/self/coll_self_alltoallw.c create mode 100644 ompi/mca/coll/self/coll_self_barrier.c create mode 100644 ompi/mca/coll/self/coll_self_bcast.c create mode 100644 ompi/mca/coll/self/coll_self_component.c create mode 100644 ompi/mca/coll/self/coll_self_exscan.c create mode 100644 ompi/mca/coll/self/coll_self_gather.c create mode 100644 ompi/mca/coll/self/coll_self_gatherv.c create mode 100644 ompi/mca/coll/self/coll_self_module.c create mode 100644 ompi/mca/coll/self/coll_self_reduce.c create mode 100644 ompi/mca/coll/self/coll_self_reduce_scatter.c create mode 100644 ompi/mca/coll/self/coll_self_scan.c create mode 100644 ompi/mca/coll/self/coll_self_scatter.c create mode 100644 ompi/mca/coll/self/coll_self_scatterv.c create mode 100644 ompi/mca/coll/self/owner.txt create mode 100644 ompi/mca/coll/sm/Makefile.am create mode 100644 ompi/mca/coll/sm/coll_sm.h create mode 100644 ompi/mca/coll/sm/coll_sm_allgather.c create mode 100644 ompi/mca/coll/sm/coll_sm_allgatherv.c create mode 100644 ompi/mca/coll/sm/coll_sm_allreduce.c create mode 100644 ompi/mca/coll/sm/coll_sm_alltoall.c create mode 100644 ompi/mca/coll/sm/coll_sm_alltoallv.c create mode 100644 ompi/mca/coll/sm/coll_sm_alltoallw.c create mode 100644 ompi/mca/coll/sm/coll_sm_barrier.c create mode 100644 ompi/mca/coll/sm/coll_sm_bcast.c create mode 100644 ompi/mca/coll/sm/coll_sm_component.c create mode 100644 ompi/mca/coll/sm/coll_sm_exscan.c create mode 100644 ompi/mca/coll/sm/coll_sm_gather.c create mode 100644 ompi/mca/coll/sm/coll_sm_gatherv.c create mode 100644 ompi/mca/coll/sm/coll_sm_module.c create mode 100644 ompi/mca/coll/sm/coll_sm_reduce.c create mode 100644 ompi/mca/coll/sm/coll_sm_reduce_scatter.c create mode 100644 ompi/mca/coll/sm/coll_sm_scan.c create mode 100644 ompi/mca/coll/sm/coll_sm_scatter.c create mode 100644 ompi/mca/coll/sm/coll_sm_scatterv.c create mode 100644 ompi/mca/coll/sm/help-mpi-coll-sm.txt create mode 100644 ompi/mca/coll/sm/memory-layout.ppt create mode 100644 ompi/mca/coll/sm/owner.txt create mode 100644 ompi/mca/coll/sync/Makefile.am create mode 100644 ompi/mca/coll/sync/coll_sync.h create mode 100644 ompi/mca/coll/sync/coll_sync_bcast.c create mode 100644 ompi/mca/coll/sync/coll_sync_component.c create mode 100644 ompi/mca/coll/sync/coll_sync_exscan.c create mode 100644 ompi/mca/coll/sync/coll_sync_gather.c create mode 100644 ompi/mca/coll/sync/coll_sync_gatherv.c create mode 100644 ompi/mca/coll/sync/coll_sync_module.c create mode 100644 ompi/mca/coll/sync/coll_sync_reduce.c create mode 100644 ompi/mca/coll/sync/coll_sync_reduce_scatter.c create mode 100644 ompi/mca/coll/sync/coll_sync_scan.c create mode 100644 ompi/mca/coll/sync/coll_sync_scatter.c create mode 100644 ompi/mca/coll/sync/coll_sync_scatterv.c create mode 100644 ompi/mca/coll/sync/help-coll-sync.txt create mode 100644 ompi/mca/coll/sync/owner.txt create mode 100644 ompi/mca/coll/tuned/Makefile.am create mode 100644 ompi/mca/coll/tuned/coll_tuned.h create mode 100644 ompi/mca/coll/tuned/coll_tuned_allgather_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_allgatherv_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_allreduce_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_alltoall_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_alltoallv_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_barrier_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_bcast_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_component.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_decision_dynamic.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_decision_fixed.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_dynamic_file.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_dynamic_file.h create mode 100644 ompi/mca/coll/tuned/coll_tuned_dynamic_rules.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_dynamic_rules.h create mode 100644 ompi/mca/coll/tuned/coll_tuned_gather_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_module.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_reduce_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_reduce_scatter_decision.c create mode 100644 ompi/mca/coll/tuned/coll_tuned_scatter_decision.c create mode 100644 ompi/mca/coll/tuned/owner.txt create mode 100644 ompi/mca/common/Makefile.am create mode 100644 ompi/mca/common/ompio/Makefile.am create mode 100644 ompi/mca/common/ompio/common_ompio.h create mode 100644 ompi/mca/common/ompio/common_ompio_file_open.c create mode 100644 ompi/mca/common/ompio/common_ompio_file_read.c create mode 100644 ompi/mca/common/ompio/common_ompio_file_view.c create mode 100644 ompi/mca/common/ompio/common_ompio_file_write.c create mode 100644 ompi/mca/common/ompio/common_ompio_print_queue.c create mode 100644 ompi/mca/common/ompio/common_ompio_print_queue.h create mode 100644 ompi/mca/common/ompio/configure.m4 create mode 100644 ompi/mca/crcp/Makefile.am create mode 100644 ompi/mca/crcp/base/Makefile.am create mode 100644 ompi/mca/crcp/base/base.h create mode 100644 ompi/mca/crcp/base/crcp_base_fns.c create mode 100644 ompi/mca/crcp/base/crcp_base_frame.c create mode 100644 ompi/mca/crcp/base/crcp_base_select.c create mode 100644 ompi/mca/crcp/base/owner.txt create mode 100644 ompi/mca/crcp/bkmrk/Makefile.am create mode 100644 ompi/mca/crcp/bkmrk/configure.m4 create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk.h create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk_btl.c create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk_btl.h create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk_component.c create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk_module.c create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk_pml.c create mode 100644 ompi/mca/crcp/bkmrk/crcp_bkmrk_pml.h create mode 100644 ompi/mca/crcp/bkmrk/owner.txt create mode 100644 ompi/mca/crcp/crcp.h create mode 100644 ompi/mca/crcp/ompi_crcp.7in create mode 100644 ompi/mca/fbtl/Makefile.am create mode 100644 ompi/mca/fbtl/base/Makefile.am create mode 100644 ompi/mca/fbtl/base/base.h create mode 100644 ompi/mca/fbtl/base/fbtl_base_file_select.c create mode 100644 ompi/mca/fbtl/base/fbtl_base_file_unselect.c create mode 100644 ompi/mca/fbtl/base/fbtl_base_find_available.c create mode 100644 ompi/mca/fbtl/base/fbtl_base_frame.c create mode 100644 ompi/mca/fbtl/base/owner.txt create mode 100644 ompi/mca/fbtl/configure.m4 create mode 100644 ompi/mca/fbtl/fbtl.h create mode 100644 ompi/mca/fbtl/plfs/Makefile.am create mode 100644 ompi/mca/fbtl/plfs/configure.m4 create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs.c create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs.h create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs_component.c create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs_ipreadv.c create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs_ipwritev.c create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs_preadv.c create mode 100644 ompi/mca/fbtl/plfs/fbtl_plfs_pwritev.c create mode 100644 ompi/mca/fbtl/plfs/owner.txt create mode 100644 ompi/mca/fbtl/posix/Makefile.am create mode 100644 ompi/mca/fbtl/posix/configure.m4 create mode 100644 ompi/mca/fbtl/posix/fbtl_posix.c create mode 100644 ompi/mca/fbtl/posix/fbtl_posix.h create mode 100644 ompi/mca/fbtl/posix/fbtl_posix_component.c create mode 100644 ompi/mca/fbtl/posix/fbtl_posix_ipreadv.c create mode 100644 ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c create mode 100644 ompi/mca/fbtl/posix/fbtl_posix_preadv.c create mode 100644 ompi/mca/fbtl/posix/fbtl_posix_pwritev.c create mode 100644 ompi/mca/fbtl/posix/owner.txt create mode 100644 ompi/mca/fbtl/pvfs2/Makefile.am create mode 100644 ompi/mca/fbtl/pvfs2/configure.m4 create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2.c create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2.h create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2_component.c create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2_ipreadv.c create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2_ipwritev.c create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2_preadv.c create mode 100644 ompi/mca/fbtl/pvfs2/fbtl_pvfs2_pwritev.c create mode 100644 ompi/mca/fbtl/pvfs2/owner.txt create mode 100644 ompi/mca/fcoll/Makefile.am create mode 100644 ompi/mca/fcoll/base/Makefile.am create mode 100644 ompi/mca/fcoll/base/base.h create mode 100644 ompi/mca/fcoll/base/fcoll_base_coll_array.c create mode 100644 ompi/mca/fcoll/base/fcoll_base_coll_array.h create mode 100644 ompi/mca/fcoll/base/fcoll_base_file_select.c create mode 100644 ompi/mca/fcoll/base/fcoll_base_file_unselect.c create mode 100644 ompi/mca/fcoll/base/fcoll_base_find_available.c create mode 100644 ompi/mca/fcoll/base/fcoll_base_frame.c create mode 100644 ompi/mca/fcoll/base/fcoll_base_sort.c create mode 100644 ompi/mca/fcoll/base/owner.txt create mode 100644 ompi/mca/fcoll/configure.m4 create mode 100644 ompi/mca/fcoll/dynamic/Makefile.am create mode 100644 ompi/mca/fcoll/dynamic/fcoll_dynamic.h create mode 100644 ompi/mca/fcoll/dynamic/fcoll_dynamic_component.c create mode 100644 ompi/mca/fcoll/dynamic/fcoll_dynamic_file_read_all.c create mode 100644 ompi/mca/fcoll/dynamic/fcoll_dynamic_file_write_all.c create mode 100644 ompi/mca/fcoll/dynamic/fcoll_dynamic_module.c create mode 100644 ompi/mca/fcoll/dynamic/owner.txt create mode 100644 ompi/mca/fcoll/dynamic_gen2/Makefile.am create mode 100644 ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2.h create mode 100644 ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_component.c create mode 100644 ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_read_all.c create mode 100644 ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_file_write_all.c create mode 100644 ompi/mca/fcoll/dynamic_gen2/fcoll_dynamic_gen2_module.c create mode 100644 ompi/mca/fcoll/dynamic_gen2/owner.txt create mode 100644 ompi/mca/fcoll/fcoll.h create mode 100644 ompi/mca/fcoll/individual/Makefile.am create mode 100644 ompi/mca/fcoll/individual/fcoll_individual.h create mode 100644 ompi/mca/fcoll/individual/fcoll_individual_component.c create mode 100644 ompi/mca/fcoll/individual/fcoll_individual_file_read_all.c create mode 100644 ompi/mca/fcoll/individual/fcoll_individual_file_write_all.c create mode 100644 ompi/mca/fcoll/individual/fcoll_individual_module.c create mode 100644 ompi/mca/fcoll/individual/owner.txt create mode 100644 ompi/mca/fcoll/static/Makefile.am create mode 100644 ompi/mca/fcoll/static/fcoll_static.h create mode 100644 ompi/mca/fcoll/static/fcoll_static_component.c create mode 100644 ompi/mca/fcoll/static/fcoll_static_file_read_all.c create mode 100644 ompi/mca/fcoll/static/fcoll_static_file_write_all.c create mode 100644 ompi/mca/fcoll/static/fcoll_static_module.c create mode 100644 ompi/mca/fcoll/static/owner.txt create mode 100644 ompi/mca/fcoll/two_phase/Makefile.am create mode 100644 ompi/mca/fcoll/two_phase/fcoll_two_phase.h create mode 100644 ompi/mca/fcoll/two_phase/fcoll_two_phase_component.c create mode 100644 ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c create mode 100644 ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c create mode 100644 ompi/mca/fcoll/two_phase/fcoll_two_phase_module.c create mode 100644 ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c create mode 100644 ompi/mca/fcoll/two_phase/owner.txt create mode 100644 ompi/mca/fs/Makefile.am create mode 100644 ompi/mca/fs/base/Makefile.am create mode 100644 ompi/mca/fs/base/base.h create mode 100644 ompi/mca/fs/base/fs_base_file_select.c create mode 100644 ompi/mca/fs/base/fs_base_file_unselect.c create mode 100644 ompi/mca/fs/base/fs_base_find_available.c create mode 100644 ompi/mca/fs/base/fs_base_frame.c create mode 100644 ompi/mca/fs/base/fs_base_get_parent_dir.c create mode 100644 ompi/mca/fs/base/owner.txt create mode 100644 ompi/mca/fs/configure.m4 create mode 100644 ompi/mca/fs/fs.h create mode 100644 ompi/mca/fs/lustre/.opal_unignore create mode 100644 ompi/mca/fs/lustre/Makefile.am create mode 100644 ompi/mca/fs/lustre/configure.m4 create mode 100644 ompi/mca/fs/lustre/fs_lustre.c create mode 100644 ompi/mca/fs/lustre/fs_lustre.h create mode 100644 ompi/mca/fs/lustre/fs_lustre_component.c create mode 100644 ompi/mca/fs/lustre/fs_lustre_file_close.c create mode 100644 ompi/mca/fs/lustre/fs_lustre_file_delete.c create mode 100644 ompi/mca/fs/lustre/fs_lustre_file_get_size.c create mode 100644 ompi/mca/fs/lustre/fs_lustre_file_open.c create mode 100644 ompi/mca/fs/lustre/fs_lustre_file_set_size.c create mode 100644 ompi/mca/fs/lustre/fs_lustre_file_sync.c create mode 100644 ompi/mca/fs/lustre/owner.txt create mode 100644 ompi/mca/fs/plfs/Makefile.am create mode 100644 ompi/mca/fs/plfs/configure.m4 create mode 100644 ompi/mca/fs/plfs/fs_plfs.c create mode 100644 ompi/mca/fs/plfs/fs_plfs.h create mode 100644 ompi/mca/fs/plfs/fs_plfs_component.c create mode 100644 ompi/mca/fs/plfs/fs_plfs_file_close.c create mode 100644 ompi/mca/fs/plfs/fs_plfs_file_delete.c create mode 100644 ompi/mca/fs/plfs/fs_plfs_file_get_size.c create mode 100644 ompi/mca/fs/plfs/fs_plfs_file_open.c create mode 100644 ompi/mca/fs/plfs/fs_plfs_file_set_size.c create mode 100644 ompi/mca/fs/plfs/fs_plfs_file_sync.c create mode 100644 ompi/mca/fs/plfs/owner.txt create mode 100644 ompi/mca/fs/pvfs2/Makefile.am create mode 100644 ompi/mca/fs/pvfs2/configure.m4 create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2.h create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_component.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_file_close.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_file_delete.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_file_get_size.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_file_open.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_file_set_size.c create mode 100644 ompi/mca/fs/pvfs2/fs_pvfs2_file_sync.c create mode 100644 ompi/mca/fs/pvfs2/owner.txt create mode 100644 ompi/mca/fs/ufs/Makefile.am create mode 100644 ompi/mca/fs/ufs/fs_ufs.c create mode 100644 ompi/mca/fs/ufs/fs_ufs.h create mode 100644 ompi/mca/fs/ufs/fs_ufs_component.c create mode 100644 ompi/mca/fs/ufs/fs_ufs_file_close.c create mode 100644 ompi/mca/fs/ufs/fs_ufs_file_delete.c create mode 100644 ompi/mca/fs/ufs/fs_ufs_file_get_size.c create mode 100644 ompi/mca/fs/ufs/fs_ufs_file_open.c create mode 100644 ompi/mca/fs/ufs/fs_ufs_file_set_size.c create mode 100644 ompi/mca/fs/ufs/fs_ufs_file_sync.c create mode 100644 ompi/mca/fs/ufs/owner.txt create mode 100644 ompi/mca/io/Makefile.am create mode 100644 ompi/mca/io/base/Makefile.am create mode 100644 ompi/mca/io/base/base.h create mode 100644 ompi/mca/io/base/io_base_component_list.c create mode 100644 ompi/mca/io/base/io_base_delete.c create mode 100644 ompi/mca/io/base/io_base_file_select.c create mode 100644 ompi/mca/io/base/io_base_find_available.c create mode 100644 ompi/mca/io/base/io_base_frame.c create mode 100644 ompi/mca/io/base/io_base_register_datarep.c create mode 100644 ompi/mca/io/base/io_base_request.c create mode 100644 ompi/mca/io/base/io_base_request.h create mode 100644 ompi/mca/io/base/owner.txt create mode 100644 ompi/mca/io/configure.m4 create mode 100644 ompi/mca/io/io.h create mode 100644 ompi/mca/io/ompio/Makefile.am create mode 100644 ompi/mca/io/ompio/configure.m4 create mode 100644 ompi/mca/io/ompio/io_ompio.c create mode 100644 ompi/mca/io/ompio/io_ompio.h create mode 100644 ompi/mca/io/ompio/io_ompio_aggregators.c create mode 100644 ompi/mca/io/ompio/io_ompio_aggregators.h create mode 100644 ompi/mca/io/ompio/io_ompio_component.c create mode 100644 ompi/mca/io/ompio/io_ompio_file_open.c create mode 100644 ompi/mca/io/ompio/io_ompio_file_read.c create mode 100644 ompi/mca/io/ompio/io_ompio_file_set_view.c create mode 100644 ompi/mca/io/ompio/io_ompio_file_write.c create mode 100644 ompi/mca/io/ompio/io_ompio_module.c create mode 100644 ompi/mca/io/ompio/io_ompio_request.c create mode 100644 ompi/mca/io/ompio/io_ompio_request.h create mode 100644 ompi/mca/io/ompio/owner.txt create mode 100644 ompi/mca/io/romio314/.gitignore create mode 100644 ompi/mca/io/romio314/Makefile.am create mode 100644 ompi/mca/io/romio314/REFRESH_NOTES.txt create mode 100644 ompi/mca/io/romio314/autogen.subdirs create mode 100644 ompi/mca/io/romio314/configure.m4 create mode 100644 ompi/mca/io/romio314/ompi.patch create mode 100644 ompi/mca/io/romio314/owner.txt create mode 100644 ompi/mca/io/romio314/romio/.codingcheck create mode 100644 ompi/mca/io/romio314/romio/.config_params create mode 100644 ompi/mca/io/romio314/romio/COPYRIGHT create mode 100644 ompi/mca/io/romio314/romio/Makefile.am create mode 100644 ompi/mca/io/romio314/romio/Makefile.options create mode 100644 ompi/mca/io/romio314/romio/README create mode 100644 ompi/mca/io/romio314/romio/README_OMPI create mode 100644 ompi/mca/io/romio314/romio/adio/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/.gitignore create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_aggrs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_aggrs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_rdcoll.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_tuning.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_tuning.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/ad_gpfs_wrcoll.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/bg/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/bg/ad_bg_aggrs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/bg/ad_bg_aggrs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/bg/ad_bg_pset.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/bg/ad_bg_pset.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/pe/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/pe/ad_pe_aggrs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gpfs/pe/ad_pe_aggrs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_delete.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_features.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/ad_gridftp_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_gridftp/globus_routines.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/README create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_hfs/ad_hfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/README create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_aggregate.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_rwcontig.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_wrcoll.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_lustre/ad_lustre_wrstr.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_done.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_features.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_getsh.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_iread.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_iwrite.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_setsh.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_wait.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_done.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_feature.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_iread.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_iwrite.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_wait.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ntfs/ad_ntfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_panfs/ad_panfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_done.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_iread.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_iwrite.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_wait.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pfs/ad_pfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/README create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs_features.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_piofs/ad_piofs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_delete.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs/ad_pvfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_aio.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_common.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_common.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_delete.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_features.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_io.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_io_dtype.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_io_list.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_read_list_classic.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_pvfs2/ad_pvfs2_write_list_classic.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/README create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/ad_sfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/ad_sfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/ad_sfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/ad_sfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_sfs/ad_sfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_delete.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_done.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_getsh.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_iread.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_iwrite.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_rdcoll.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_seek.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_setsh.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_wait.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_wrcoll.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ufs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ufs/ad_ufs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ufs/ad_ufs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_ufs/ad_ufs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_xfs/ad_xfs_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_common.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_common.h create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_delete.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_features.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_io.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_read_list.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/ad_zoidfs/ad_zoidfs_write_list.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_aggregate.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_aggregate_new.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_coll_build_req_new.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_coll_exch_new.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_darray.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_delete.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_done.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_done_fake.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_end.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_fcntl.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_features.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_flush.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_fstype.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_get_sh_fp.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_init.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_io_coll.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_iopen.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_iread.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_iread_fake.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_iwrite.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_iwrite_fake.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_open.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_opencoll.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_opencoll_failsafe.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_opencoll_scalable.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_prealloc.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_read.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_read_coll.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_read_str.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_read_str_naive.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_resize.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_seek.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_set_sh_fp.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_set_view.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_subarray.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_threaded_io.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_wait.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_wait_fake.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_write.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_write_coll.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_write_nolock.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_write_str.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/ad_write_str_naive.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/adi_close.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/async_list.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/byte_offset.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/cb_config_list.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/eof_offset.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/error.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/flatten.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/get_fp_posn.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/greq_fns.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/heap-sort.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/hint_fns.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/iscontig.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/lock.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/malloc.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/p2p_aggregation.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/req_malloc.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/shfp_fname.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/status_setb.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/strfns.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/system_hints.c create mode 100644 ompi/mca/io/romio314/romio/adio/common/utils.c create mode 100644 ompi/mca/io/romio314/romio/adio/include/BaseIOErrMsgs.msg create mode 100644 ompi/mca/io/romio314/romio/adio/include/adio.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/adio_cb_config_list.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/adio_extern.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/adioi.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/adioi_errmsg.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/adioi_error.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/adioi_fs_proto.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/heap-sort.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/hint_fns.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/mpio_error.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/mpipr.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/mpiu_external32.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/mpiu_greq.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/nopackage.h create mode 100644 ompi/mca/io/romio314/romio/adio/include/romioconf-undefs.h create mode 100755 ompi/mca/io/romio314/romio/autogen.sh create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_am.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_atomic.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_attr_alias.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_bugfix.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_cache.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_cc.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_coverage.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_cxx.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_f77.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_f77old.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_fc.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_libs.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_make.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_mpi.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_romio.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_runlog.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_shl.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_shm.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_subcfg.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/aclocal_util.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/ax_prefix_config_h.m4 create mode 100644 ompi/mca/io/romio314/romio/confdb/ax_tls.m4 create mode 100644 ompi/mca/io/romio314/romio/configure.ac create mode 100644 ompi/mca/io/romio314/romio/doc/README create mode 100755 ompi/mca/io/romio314/romio/doc/makepubpage.sh create mode 100644 ompi/mca/io/romio314/romio/doc/pubs.bib create mode 100644 ompi/mca/io/romio314/romio/doc/romio.bib create mode 100644 ompi/mca/io/romio314/romio/doc/source-guide.tex create mode 100644 ompi/mca/io/romio314/romio/doc/users-guide.pdf create mode 100644 ompi/mca/io/romio314/romio/doc/users-guide.tex create mode 100644 ompi/mca/io/romio314/romio/include/io_romio_conv.h create mode 100644 ompi/mca/io/romio314/romio/include/mpio.h.in create mode 100644 ompi/mca/io/romio314/romio/include/mpiof.h.in create mode 100644 ompi/mca/io/romio314/romio/localdefs.in create mode 100644 ompi/mca/io/romio314/romio/mpi-io/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/mpi-io/close.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/delete.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/file_c2f.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/file_f2c.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/closef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/deletef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/fsyncf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_amodef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_atomf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_bytofff.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_errhf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_extentf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_groupf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_infof.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_posn_shf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_posnf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_sizef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/get_viewf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iotestf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iowaitf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iread_atf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iread_shf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/ireadf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iwrite_atf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iwrite_shf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/iwritef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/openf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/preallocf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/rd_atallbf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/rd_atallef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_allbf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_allef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_allf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_atallf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_atf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_ordbf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_ordef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_ordf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/read_shf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/readf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/seek_shf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/seekf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/set_atomf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/set_errhf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/set_infof.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/set_sizef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/set_viewf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/wr_atallbf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/wr_atallef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_allbf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_allef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_allf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_atallf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_atf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_ordbf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_ordef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_ordf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/write_shf.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fortran/writef.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/fsync.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_amode.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_atom.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_bytoff.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_errh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_extent.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_group.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_info.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_posn.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_posn_sh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_size.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/get_view.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/default/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/default/mpio_err.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/default/mpio_file.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/large_count.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/mpich/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/mpich/mpio_err.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/mpich/mpio_file.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/openmpi/Makefile.mk create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/openmpi/mpio_err.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/glue/openmpi/mpio_file.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/ioreq_c2f.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/ioreq_f2c.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iotest.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iotestall.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iotestany.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iotestsome.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iowait.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iowaitall.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iowaitany.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iowaitsome.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iread.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iread_at.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iread_sh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iwrite.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iwrite_at.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/iwrite_sh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/mpich_fileutil.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/mpioimpl.h create mode 100644 ompi/mca/io/romio314/romio/mpi-io/mpioprof.h create mode 100644 ompi/mca/io/romio314/romio/mpi-io/mpir-mpioinit.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/mpiu_external32.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/mpiu_greq.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/open.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/prealloc.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/rd_atallb.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/rd_atalle.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_all.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_allb.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_alle.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_at.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_atall.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_ord.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_ordb.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_orde.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/read_sh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/register_datarep.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/seek.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/seek_sh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/set_atom.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/set_errh.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/set_info.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/set_size.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/set_view.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/wr_atallb.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/wr_atalle.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_all.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_allb.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_alle.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_at.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_atall.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_ord.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_ordb.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_orde.c create mode 100644 ompi/mca/io/romio314/romio/mpi-io/write_sh.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/array/Makefile.in create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/array/darray.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/array/fortran/Makefile.in create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/array/fortran/darrayf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/array/fortran/subarrayf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/array/subarray.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/Makefile.in create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/Makefile.in create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_createf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_deletef.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_dupf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_freef.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_getf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_getnksf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_getnthf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_getvlnf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/fortran/info_setf.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_c2f.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_create.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_delete.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_dup.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_f2c.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_free.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_get.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_getnks.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_getnth.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_getvln.c create mode 100644 ompi/mca/io/romio314/romio/mpi2-other/info/info_set.c create mode 100644 ompi/mca/io/romio314/romio/test-internal/Makefile.am create mode 100644 ompi/mca/io/romio314/romio/test-internal/file_realms_test.c create mode 100644 ompi/mca/io/romio314/romio/test-internal/heap_test.c create mode 100644 ompi/mca/io/romio314/romio/test-internal/io_bounds_test.c create mode 100644 ompi/mca/io/romio314/romio/test/.codingcheck create mode 100644 ompi/mca/io/romio314/romio/test/Makefile.am create mode 100644 ompi/mca/io/romio314/romio/test/Mfile.in create mode 100644 ompi/mca/io/romio314/romio/test/README create mode 100644 ompi/mca/io/romio314/romio/test/aggregation1.c create mode 100644 ompi/mca/io/romio314/romio/test/aggregation2.c create mode 100644 ompi/mca/io/romio314/romio/test/async-multiple.c create mode 100644 ompi/mca/io/romio314/romio/test/async.c create mode 100644 ompi/mca/io/romio314/romio/test/atomicity.c create mode 100644 ompi/mca/io/romio314/romio/test/big_extents.c create mode 100644 ompi/mca/io/romio314/romio/test/coll_perf.c create mode 100644 ompi/mca/io/romio314/romio/test/coll_test.c create mode 100644 ompi/mca/io/romio314/romio/test/creat_excl.c create mode 100644 ompi/mca/io/romio314/romio/test/darray_read.c create mode 100644 ompi/mca/io/romio314/romio/test/error.c create mode 100644 ompi/mca/io/romio314/romio/test/excl.c create mode 100644 ompi/mca/io/romio314/romio/test/external32.c create mode 100644 ompi/mca/io/romio314/romio/test/fcoll_test.f.in create mode 100644 ompi/mca/io/romio314/romio/test/file_info.c create mode 100644 ompi/mca/io/romio314/romio/test/fmisc.f.in create mode 100644 ompi/mca/io/romio314/romio/test/fperf.f.in create mode 100644 ompi/mca/io/romio314/romio/test/hindexed.c create mode 100644 ompi/mca/io/romio314/romio/test/i_noncontig.c create mode 100644 ompi/mca/io/romio314/romio/test/large_array.c create mode 100644 ompi/mca/io/romio314/romio/test/large_file.c.in create mode 100644 ompi/mca/io/romio314/romio/test/misc.c.in create mode 100644 ompi/mca/io/romio314/romio/test/noncontig.c create mode 100644 ompi/mca/io/romio314/romio/test/noncontig_coll.c create mode 100644 ompi/mca/io/romio314/romio/test/noncontig_coll2.c create mode 100644 ompi/mca/io/romio314/romio/test/ordered_fp.c create mode 100644 ompi/mca/io/romio314/romio/test/perf.c create mode 100644 ompi/mca/io/romio314/romio/test/pfcoll_test.f.in create mode 100644 ompi/mca/io/romio314/romio/test/psimple.c create mode 100644 ompi/mca/io/romio314/romio/test/rtest.in create mode 100644 ompi/mca/io/romio314/romio/test/runtests.in create mode 100644 ompi/mca/io/romio314/romio/test/shared_fp.c create mode 100644 ompi/mca/io/romio314/romio/test/simple.c create mode 100644 ompi/mca/io/romio314/romio/test/split_coll.c create mode 100644 ompi/mca/io/romio314/romio/test/status.c create mode 100644 ompi/mca/io/romio314/romio/test/types_with_zeros.c create mode 100644 ompi/mca/io/romio314/romio/util/nfslock.c create mode 100644 ompi/mca/io/romio314/romio/util/romioinstall.in create mode 100755 ompi/mca/io/romio314/romio/util/tarch create mode 100644 ompi/mca/io/romio314/src/Makefile.extra create mode 100644 ompi/mca/io/romio314/src/io_romio314.h create mode 100644 ompi/mca/io/romio314/src/io_romio314_component.c create mode 100644 ompi/mca/io/romio314/src/io_romio314_file_open.c create mode 100644 ompi/mca/io/romio314/src/io_romio314_file_read.c create mode 100644 ompi/mca/io/romio314/src/io_romio314_file_write.c create mode 100644 ompi/mca/io/romio314/src/io_romio314_module.c create mode 100644 ompi/mca/mca.h create mode 100644 ompi/mca/mtl/Makefile.am create mode 100644 ompi/mca/mtl/base/Makefile.am create mode 100644 ompi/mca/mtl/base/base.h create mode 100644 ompi/mca/mtl/base/mtl_base_datatype.h create mode 100644 ompi/mca/mtl/base/mtl_base_frame.c create mode 100644 ompi/mca/mtl/base/owner.txt create mode 100644 ompi/mca/mtl/configure.m4 create mode 100644 ompi/mca/mtl/mtl.h create mode 100644 ompi/mca/mtl/mxm/Makefile.am create mode 100644 ompi/mca/mtl/mxm/configure.m4 create mode 100644 ompi/mca/mtl/mxm/help-mtl-mxm.txt create mode 100644 ompi/mca/mtl/mxm/mtl_mxm.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm.h create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_cancel.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_component.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_debug.h create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_endpoint.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_endpoint.h create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_probe.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_recv.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_request.h create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_send.c create mode 100644 ompi/mca/mtl/mxm/mtl_mxm_types.h create mode 100644 ompi/mca/mtl/mxm/owner.txt create mode 100644 ompi/mca/mtl/ofi/Makefile.am create mode 100644 ompi/mca/mtl/ofi/configure.m4 create mode 100644 ompi/mca/mtl/ofi/help-mtl-ofi.txt create mode 100644 ompi/mca/mtl/ofi/mtl_ofi.c create mode 100644 ompi/mca/mtl/ofi/mtl_ofi.h create mode 100644 ompi/mca/mtl/ofi/mtl_ofi_compat.h create mode 100644 ompi/mca/mtl/ofi/mtl_ofi_component.c create mode 100644 ompi/mca/mtl/ofi/mtl_ofi_endpoint.c create mode 100644 ompi/mca/mtl/ofi/mtl_ofi_endpoint.h create mode 100644 ompi/mca/mtl/ofi/mtl_ofi_request.h create mode 100644 ompi/mca/mtl/ofi/mtl_ofi_types.h create mode 100644 ompi/mca/mtl/ofi/owner.txt create mode 100644 ompi/mca/mtl/ofi/post_configure.sh create mode 100644 ompi/mca/mtl/portals4/Makefile.am create mode 100644 ompi/mca/mtl/portals4/configure.m4 create mode 100644 ompi/mca/mtl/portals4/mtl_portals4.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4.h create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_cancel.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_component.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_endpoint.h create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_flowctl.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_flowctl.h create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_message.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_message.h create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_probe.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_recv.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_recv_short.c create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_recv_short.h create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_request.h create mode 100644 ompi/mca/mtl/portals4/mtl_portals4_send.c create mode 100644 ompi/mca/mtl/portals4/owner.txt create mode 100644 ompi/mca/mtl/portals4/post_configure.sh create mode 100644 ompi/mca/mtl/psm/Makefile.am create mode 100644 ompi/mca/mtl/psm/configure.m4 create mode 100644 ompi/mca/mtl/psm/help-mtl-psm.txt create mode 100644 ompi/mca/mtl/psm/mtl_psm.c create mode 100644 ompi/mca/mtl/psm/mtl_psm.h create mode 100644 ompi/mca/mtl/psm/mtl_psm_cancel.c create mode 100644 ompi/mca/mtl/psm/mtl_psm_component.c create mode 100644 ompi/mca/mtl/psm/mtl_psm_endpoint.c create mode 100644 ompi/mca/mtl/psm/mtl_psm_endpoint.h create mode 100644 ompi/mca/mtl/psm/mtl_psm_probe.c create mode 100644 ompi/mca/mtl/psm/mtl_psm_recv.c create mode 100644 ompi/mca/mtl/psm/mtl_psm_request.h create mode 100644 ompi/mca/mtl/psm/mtl_psm_send.c create mode 100644 ompi/mca/mtl/psm/mtl_psm_types.h create mode 100644 ompi/mca/mtl/psm/owner.txt create mode 100644 ompi/mca/mtl/psm/post_configure.sh create mode 100644 ompi/mca/mtl/psm2/Makefile.am create mode 100644 ompi/mca/mtl/psm2/configure.m4 create mode 100644 ompi/mca/mtl/psm2/help-mtl-psm2.txt create mode 100644 ompi/mca/mtl/psm2/mtl_psm2.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2.h create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_cancel.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_component.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_endpoint.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_endpoint.h create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_probe.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_recv.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_request.h create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_send.c create mode 100644 ompi/mca/mtl/psm2/mtl_psm2_types.h create mode 100644 ompi/mca/mtl/psm2/owner.txt create mode 100644 ompi/mca/mtl/psm2/post_configure.sh create mode 100644 ompi/mca/op/Makefile.am create mode 100644 ompi/mca/op/base/Makefile.include create mode 100644 ompi/mca/op/base/base.h create mode 100644 ompi/mca/op/base/functions.h create mode 100644 ompi/mca/op/base/op_base_find_available.c create mode 100644 ompi/mca/op/base/op_base_frame.c create mode 100644 ompi/mca/op/base/op_base_functions.c create mode 100644 ompi/mca/op/base/op_base_op_select.c create mode 100644 ompi/mca/op/base/owner.txt create mode 100644 ompi/mca/op/example/.opal_ignore create mode 100644 ompi/mca/op/example/Makefile.am create mode 100644 ompi/mca/op/example/README.txt create mode 100644 ompi/mca/op/example/configure.m4 create mode 100644 ompi/mca/op/example/op_example.h create mode 100644 ompi/mca/op/example/op_example_component.c create mode 100644 ompi/mca/op/example/op_example_module_bxor.c create mode 100644 ompi/mca/op/example/op_example_module_max.c create mode 100644 ompi/mca/op/example/owner.txt create mode 100644 ompi/mca/op/op.h create mode 100644 ompi/mca/osc/Makefile.am create mode 100644 ompi/mca/osc/base/Makefile.am create mode 100644 ompi/mca/osc/base/base.h create mode 100644 ompi/mca/osc/base/osc_base_frame.c create mode 100644 ompi/mca/osc/base/osc_base_init.c create mode 100644 ompi/mca/osc/base/osc_base_obj_convert.c create mode 100644 ompi/mca/osc/base/osc_base_obj_convert.h create mode 100644 ompi/mca/osc/base/owner.txt create mode 100644 ompi/mca/osc/osc.h create mode 100644 ompi/mca/osc/portals4/Makefile.am create mode 100644 ompi/mca/osc/portals4/configure.m4 create mode 100644 ompi/mca/osc/portals4/osc_portals4.h create mode 100644 ompi/mca/osc/portals4/osc_portals4_active_target.c create mode 100644 ompi/mca/osc/portals4/osc_portals4_comm.c create mode 100644 ompi/mca/osc/portals4/osc_portals4_component.c create mode 100644 ompi/mca/osc/portals4/osc_portals4_passive_target.c create mode 100644 ompi/mca/osc/portals4/osc_portals4_request.c create mode 100644 ompi/mca/osc/portals4/osc_portals4_request.h create mode 100644 ompi/mca/osc/portals4/owner.txt create mode 100644 ompi/mca/osc/pt2pt/Makefile.am create mode 100644 ompi/mca/osc/pt2pt/configure.m4 create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt.h create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_active_target.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_comm.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_component.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_data_move.h create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_frag.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_frag.h create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_header.h create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_module.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_passive_target.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_pending_frag.h create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_request.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_request.h create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_sync.c create mode 100644 ompi/mca/osc/pt2pt/osc_pt2pt_sync.h create mode 100644 ompi/mca/osc/pt2pt/owner.txt create mode 100644 ompi/mca/osc/rdma/Makefile.am create mode 100644 ompi/mca/osc/rdma/configure.m4 create mode 100644 ompi/mca/osc/rdma/osc_rdma.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_accumulate.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_accumulate.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_active_target.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_active_target.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_comm.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_comm.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_component.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_dynamic.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_dynamic.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_frag.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_frag.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_lock.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_module.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_passive_target.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_passive_target.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_peer.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_peer.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_request.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_request.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_sync.c create mode 100644 ompi/mca/osc/rdma/osc_rdma_sync.h create mode 100644 ompi/mca/osc/rdma/osc_rdma_types.h create mode 100644 ompi/mca/osc/rdma/owner.txt create mode 100644 ompi/mca/osc/sm/Makefile.am create mode 100644 ompi/mca/osc/sm/osc_sm.h create mode 100644 ompi/mca/osc/sm/osc_sm_active_target.c create mode 100644 ompi/mca/osc/sm/osc_sm_comm.c create mode 100644 ompi/mca/osc/sm/osc_sm_component.c create mode 100644 ompi/mca/osc/sm/osc_sm_passive_target.c create mode 100644 ompi/mca/osc/sm/owner.txt create mode 100644 ompi/mca/pml/Makefile.am create mode 100644 ompi/mca/pml/base/Makefile.am create mode 100644 ompi/mca/pml/base/base.h create mode 100644 ompi/mca/pml/base/owner.txt create mode 100644 ompi/mca/pml/base/pml_base_bsend.c create mode 100644 ompi/mca/pml/base/pml_base_bsend.h create mode 100644 ompi/mca/pml/base/pml_base_frame.c create mode 100644 ompi/mca/pml/base/pml_base_ft.c create mode 100644 ompi/mca/pml/base/pml_base_recvreq.c create mode 100644 ompi/mca/pml/base/pml_base_recvreq.h create mode 100644 ompi/mca/pml/base/pml_base_request.c create mode 100644 ompi/mca/pml/base/pml_base_request.h create mode 100644 ompi/mca/pml/base/pml_base_request_dbg.h create mode 100644 ompi/mca/pml/base/pml_base_select.c create mode 100644 ompi/mca/pml/base/pml_base_sendreq.c create mode 100644 ompi/mca/pml/base/pml_base_sendreq.h create mode 100644 ompi/mca/pml/bfo/.opal_ignore create mode 100644 ompi/mca/pml/bfo/Makefile.am create mode 100644 ompi/mca/pml/bfo/README create mode 100644 ompi/mca/pml/bfo/configure.m4 create mode 100644 ompi/mca/pml/bfo/help-mpi-pml-bfo.txt create mode 100644 ompi/mca/pml/bfo/owner.txt create mode 100644 ompi/mca/pml/bfo/pml_bfo.c create mode 100644 ompi/mca/pml/bfo/pml_bfo.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_comm.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_comm.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_component.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_component.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_cuda.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_failover.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_failover.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_hdr.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_iprobe.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_irecv.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_isend.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_progress.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_rdma.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_rdma.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_rdmafrag.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_rdmafrag.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_recvfrag.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_recvfrag.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_recvreq.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_recvreq.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_sendreq.c create mode 100644 ompi/mca/pml/bfo/pml_bfo_sendreq.h create mode 100644 ompi/mca/pml/bfo/pml_bfo_start.c create mode 100644 ompi/mca/pml/bfo/post_configure.sh create mode 100644 ompi/mca/pml/cm/Makefile.am create mode 100644 ompi/mca/pml/cm/owner.txt create mode 100644 ompi/mca/pml/cm/pml_cm.c create mode 100644 ompi/mca/pml/cm/pml_cm.h create mode 100644 ompi/mca/pml/cm/pml_cm_cancel.c create mode 100644 ompi/mca/pml/cm/pml_cm_component.c create mode 100644 ompi/mca/pml/cm/pml_cm_component.h create mode 100644 ompi/mca/pml/cm/pml_cm_recvreq.c create mode 100644 ompi/mca/pml/cm/pml_cm_recvreq.h create mode 100644 ompi/mca/pml/cm/pml_cm_request.c create mode 100644 ompi/mca/pml/cm/pml_cm_request.h create mode 100644 ompi/mca/pml/cm/pml_cm_sendreq.c create mode 100644 ompi/mca/pml/cm/pml_cm_sendreq.h create mode 100644 ompi/mca/pml/cm/pml_cm_start.c create mode 100644 ompi/mca/pml/cm/post_configure.sh create mode 100644 ompi/mca/pml/configure.m4 create mode 100644 ompi/mca/pml/crcpw/Makefile.am create mode 100644 ompi/mca/pml/crcpw/configure.m4 create mode 100644 ompi/mca/pml/crcpw/owner.txt create mode 100644 ompi/mca/pml/crcpw/pml_crcpw.h create mode 100644 ompi/mca/pml/crcpw/pml_crcpw_component.c create mode 100644 ompi/mca/pml/crcpw/pml_crcpw_module.c create mode 100644 ompi/mca/pml/example/.opal_ignore create mode 100644 ompi/mca/pml/example/Makefile.am create mode 100644 ompi/mca/pml/example/pml_example.c create mode 100644 ompi/mca/pml/example/pml_example.h create mode 100644 ompi/mca/pml/example/pml_example_cancel.c create mode 100644 ompi/mca/pml/example/pml_example_component.c create mode 100644 ompi/mca/pml/example/pml_example_iprobe.c create mode 100644 ompi/mca/pml/example/pml_example_irecv.c create mode 100644 ompi/mca/pml/example/pml_example_isend.c create mode 100644 ompi/mca/pml/example/pml_example_proc.c create mode 100644 ompi/mca/pml/example/pml_example_proc.h create mode 100644 ompi/mca/pml/example/pml_example_progress.c create mode 100644 ompi/mca/pml/example/pml_example_ptl.c create mode 100644 ompi/mca/pml/example/pml_example_ptl.h create mode 100644 ompi/mca/pml/example/pml_example_recvfrag.c create mode 100644 ompi/mca/pml/example/pml_example_recvfrag.h create mode 100644 ompi/mca/pml/example/pml_example_recvreq.c create mode 100644 ompi/mca/pml/example/pml_example_recvreq.h create mode 100644 ompi/mca/pml/example/pml_example_sendreq.c create mode 100644 ompi/mca/pml/example/pml_example_sendreq.h create mode 100644 ompi/mca/pml/example/pml_example_start.c create mode 100644 ompi/mca/pml/monitoring/Makefile.am create mode 100644 ompi/mca/pml/monitoring/README create mode 100644 ompi/mca/pml/monitoring/pml_monitoring.c create mode 100644 ompi/mca/pml/monitoring/pml_monitoring.h create mode 100644 ompi/mca/pml/monitoring/pml_monitoring_comm.c create mode 100644 ompi/mca/pml/monitoring/pml_monitoring_component.c create mode 100644 ompi/mca/pml/monitoring/pml_monitoring_iprobe.c create mode 100644 ompi/mca/pml/monitoring/pml_monitoring_irecv.c create mode 100644 ompi/mca/pml/monitoring/pml_monitoring_isend.c create mode 100644 ompi/mca/pml/monitoring/pml_monitoring_start.c create mode 100644 ompi/mca/pml/ob1/Makefile.am create mode 100644 ompi/mca/pml/ob1/configure.m4 create mode 100644 ompi/mca/pml/ob1/help-mpi-pml-ob1.txt create mode 100644 ompi/mca/pml/ob1/owner.txt create mode 100644 ompi/mca/pml/ob1/pml_ob1.c create mode 100644 ompi/mca/pml/ob1/pml_ob1.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_comm.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_comm.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_component.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_component.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_cuda.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_hdr.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_iprobe.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_irecv.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_isend.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_progress.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_rdma.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_rdma.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_rdmafrag.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_rdmafrag.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_recvfrag.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_recvfrag.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_recvreq.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_recvreq.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_sendreq.c create mode 100644 ompi/mca/pml/ob1/pml_ob1_sendreq.h create mode 100644 ompi/mca/pml/ob1/pml_ob1_start.c create mode 100644 ompi/mca/pml/ob1/post_configure.sh create mode 100644 ompi/mca/pml/pml.h create mode 100644 ompi/mca/pml/pml_constants.h create mode 100644 ompi/mca/pml/ucx/Makefile.am create mode 100644 ompi/mca/pml/ucx/configure.m4 create mode 100644 ompi/mca/pml/ucx/pml_ucx.c create mode 100644 ompi/mca/pml/ucx/pml_ucx.h create mode 100644 ompi/mca/pml/ucx/pml_ucx_component.c create mode 100644 ompi/mca/pml/ucx/pml_ucx_datatype.c create mode 100644 ompi/mca/pml/ucx/pml_ucx_datatype.h create mode 100644 ompi/mca/pml/ucx/pml_ucx_freelist.h create mode 100644 ompi/mca/pml/ucx/pml_ucx_request.c create mode 100644 ompi/mca/pml/ucx/pml_ucx_request.h create mode 100644 ompi/mca/pml/v/Makefile.am create mode 100644 ompi/mca/pml/v/configure.m4 create mode 100644 ompi/mca/pml/v/owner.txt create mode 100644 ompi/mca/pml/v/pml_v.h create mode 100644 ompi/mca/pml/v/pml_v_component.c create mode 100644 ompi/mca/pml/v/pml_v_output.c create mode 100644 ompi/mca/pml/v/pml_v_output.h create mode 100644 ompi/mca/pml/yalla/Makefile.am create mode 100644 ompi/mca/pml/yalla/configure.m4 create mode 100644 ompi/mca/pml/yalla/owner.txt create mode 100644 ompi/mca/pml/yalla/pml_yalla.c create mode 100644 ompi/mca/pml/yalla/pml_yalla.h create mode 100644 ompi/mca/pml/yalla/pml_yalla_component.c create mode 100644 ompi/mca/pml/yalla/pml_yalla_datatype.c create mode 100644 ompi/mca/pml/yalla/pml_yalla_datatype.h create mode 100644 ompi/mca/pml/yalla/pml_yalla_freelist.h create mode 100644 ompi/mca/pml/yalla/pml_yalla_request.c create mode 100644 ompi/mca/pml/yalla/pml_yalla_request.h create mode 100644 ompi/mca/rte/Makefile.am create mode 100644 ompi/mca/rte/base/Makefile.am create mode 100644 ompi/mca/rte/base/base.h create mode 100644 ompi/mca/rte/base/rte_base_frame.c create mode 100644 ompi/mca/rte/configure.m4 create mode 100644 ompi/mca/rte/orte/Makefile.am create mode 100644 ompi/mca/rte/orte/configure.m4 create mode 100644 ompi/mca/rte/orte/rte_orte.h create mode 100644 ompi/mca/rte/orte/rte_orte_component.c create mode 100644 ompi/mca/rte/orte/rte_orte_module.c create mode 100644 ompi/mca/rte/rte.h create mode 100644 ompi/mca/sbgp/Makefile.am create mode 100644 ompi/mca/sbgp/base/Makefile.am create mode 100644 ompi/mca/sbgp/base/base.h create mode 100644 ompi/mca/sbgp/base/owner.txt create mode 100644 ompi/mca/sbgp/base/sbgp_base_close.c create mode 100644 ompi/mca/sbgp/base/sbgp_base_frame.c create mode 100644 ompi/mca/sbgp/base/sbgp_base_init.c create mode 100644 ompi/mca/sbgp/basesmsocket/Makefile.am create mode 100644 ompi/mca/sbgp/basesmsocket/owner.txt create mode 100644 ompi/mca/sbgp/basesmsocket/sbgp_basesmsocket.h create mode 100644 ompi/mca/sbgp/basesmsocket/sbgp_basesmsocket_component.c create mode 100644 ompi/mca/sbgp/basesmsocket/sbgp_basesmsocket_module.c create mode 100644 ompi/mca/sbgp/basesmuma/Makefile.am create mode 100644 ompi/mca/sbgp/basesmuma/owner.txt create mode 100644 ompi/mca/sbgp/basesmuma/sbgp_basesmuma.h create mode 100644 ompi/mca/sbgp/basesmuma/sbgp_basesmuma_component.c create mode 100644 ompi/mca/sbgp/basesmuma/sbgp_basesmuma_module.c create mode 100644 ompi/mca/sbgp/ibnet/.opal_ignore create mode 100644 ompi/mca/sbgp/ibnet/Makefile.am create mode 100644 ompi/mca/sbgp/ibnet/configure.m4 create mode 100644 ompi/mca/sbgp/ibnet/owner.txt create mode 100644 ompi/mca/sbgp/ibnet/sbgp_ibnet.h create mode 100644 ompi/mca/sbgp/ibnet/sbgp_ibnet_component.c create mode 100644 ompi/mca/sbgp/ibnet/sbgp_ibnet_mca.c create mode 100644 ompi/mca/sbgp/ibnet/sbgp_ibnet_mca.h create mode 100644 ompi/mca/sbgp/ibnet/sbgp_ibnet_module.c create mode 100644 ompi/mca/sbgp/p2p/Makefile.am create mode 100644 ompi/mca/sbgp/p2p/configure.m4 create mode 100644 ompi/mca/sbgp/p2p/owner.txt create mode 100644 ompi/mca/sbgp/p2p/sbgp_p2p.h create mode 100644 ompi/mca/sbgp/p2p/sbgp_p2p_component.c create mode 100644 ompi/mca/sbgp/p2p/sbgp_p2p_module.c create mode 100644 ompi/mca/sbgp/sbgp.h create mode 100644 ompi/mca/sharedfp/Makefile.am create mode 100644 ompi/mca/sharedfp/addproc/.opal_ignore create mode 100644 ompi/mca/sharedfp/addproc/.opal_unignore create mode 100644 ompi/mca/sharedfp/addproc/Makefile.am create mode 100644 ompi/mca/sharedfp/addproc/owner.txt create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc.h create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_component.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_control.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_control.h create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_file_open.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_iread.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_iwrite.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_read.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_request_position.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_seek.c create mode 100644 ompi/mca/sharedfp/addproc/sharedfp_addproc_write.c create mode 100644 ompi/mca/sharedfp/base/Makefile.am create mode 100644 ompi/mca/sharedfp/base/base.h create mode 100644 ompi/mca/sharedfp/base/owner.txt create mode 100644 ompi/mca/sharedfp/base/sharedfp_base_file_select.c create mode 100644 ompi/mca/sharedfp/base/sharedfp_base_file_unselect.c create mode 100644 ompi/mca/sharedfp/base/sharedfp_base_find_available.c create mode 100644 ompi/mca/sharedfp/base/sharedfp_base_frame.c create mode 100644 ompi/mca/sharedfp/configure.m4 create mode 100644 ompi/mca/sharedfp/individual/Makefile.am create mode 100644 ompi/mca/sharedfp/individual/owner.txt create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual.h create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_collaborate_data.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_component.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_file_open.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_get_position.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_gettime.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_insert_metadata.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_iwrite.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_read.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_seek.c create mode 100644 ompi/mca/sharedfp/individual/sharedfp_individual_write.c create mode 100644 ompi/mca/sharedfp/lockedfile/Makefile.am create mode 100644 ompi/mca/sharedfp/lockedfile/owner.txt create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile.h create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_component.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_file_open.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_get_position.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_iread.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_iwrite.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_read.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_request_position.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_seek.c create mode 100644 ompi/mca/sharedfp/lockedfile/sharedfp_lockedfile_write.c create mode 100644 ompi/mca/sharedfp/sharedfp.h create mode 100644 ompi/mca/sharedfp/sm/Makefile.am create mode 100644 ompi/mca/sharedfp/sm/configure.m4 create mode 100644 ompi/mca/sharedfp/sm/owner.txt create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm.h create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_component.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_file_open.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_get_position.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_iread.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_iwrite.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_read.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_request_position.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_seek.c create mode 100644 ompi/mca/sharedfp/sm/sharedfp_sm_write.c create mode 100644 ompi/mca/topo/Makefile.am create mode 100644 ompi/mca/topo/base/Makefile.am create mode 100644 ompi/mca/topo/base/base.h create mode 100644 ompi/mca/topo/base/owner.txt create mode 100644 ompi/mca/topo/base/topo_base_cart_coords.c create mode 100644 ompi/mca/topo/base/topo_base_cart_create.c create mode 100644 ompi/mca/topo/base/topo_base_cart_get.c create mode 100644 ompi/mca/topo/base/topo_base_cart_map.c create mode 100644 ompi/mca/topo/base/topo_base_cart_rank.c create mode 100644 ompi/mca/topo/base/topo_base_cart_shift.c create mode 100644 ompi/mca/topo/base/topo_base_cart_sub.c create mode 100644 ompi/mca/topo/base/topo_base_cartdim_get.c create mode 100644 ompi/mca/topo/base/topo_base_comm_select.c create mode 100644 ompi/mca/topo/base/topo_base_dist_graph_create.c create mode 100644 ompi/mca/topo/base/topo_base_dist_graph_create_adjacent.c create mode 100644 ompi/mca/topo/base/topo_base_dist_graph_neighbors.c create mode 100644 ompi/mca/topo/base/topo_base_dist_graph_neighbors_count.c create mode 100644 ompi/mca/topo/base/topo_base_find_available.c create mode 100644 ompi/mca/topo/base/topo_base_frame.c create mode 100644 ompi/mca/topo/base/topo_base_graph_create.c create mode 100644 ompi/mca/topo/base/topo_base_graph_get.c create mode 100644 ompi/mca/topo/base/topo_base_graph_map.c create mode 100644 ompi/mca/topo/base/topo_base_graph_neighbors.c create mode 100644 ompi/mca/topo/base/topo_base_graph_neighbors_count.c create mode 100644 ompi/mca/topo/base/topo_base_graphdims_get.c create mode 100644 ompi/mca/topo/base/topo_base_lazy_init.c create mode 100644 ompi/mca/topo/basic/Makefile.am create mode 100644 ompi/mca/topo/basic/owner.txt create mode 100644 ompi/mca/topo/basic/topo_basic.h create mode 100644 ompi/mca/topo/basic/topo_basic_component.c create mode 100644 ompi/mca/topo/example/.opal_ignore create mode 100644 ompi/mca/topo/example/Makefile.am create mode 100644 ompi/mca/topo/example/owner.txt create mode 100644 ompi/mca/topo/example/topo_example.h create mode 100644 ompi/mca/topo/example/topo_example_cart_map.c create mode 100644 ompi/mca/topo/example/topo_example_component.c create mode 100644 ompi/mca/topo/example/topo_example_graph_map.c create mode 100644 ompi/mca/topo/example/topo_example_module.c create mode 100644 ompi/mca/topo/topo.h create mode 100644 ompi/mca/topo/treematch/Makefile.am create mode 100644 ompi/mca/topo/treematch/configure.m4 create mode 100644 ompi/mca/topo/treematch/topo_treematch.h create mode 100644 ompi/mca/topo/treematch/topo_treematch_component.c create mode 100644 ompi/mca/topo/treematch/topo_treematch_dist_graph_create.c create mode 100644 ompi/mca/topo/treematch/topo_treematch_module.c create mode 100644 ompi/mca/topo/treematch/treematch/COPYING create mode 100644 ompi/mca/topo/treematch/treematch/IntConstantInitializedVector.c create mode 100644 ompi/mca/topo/treematch/treematch/IntConstantInitializedVector.h create mode 100644 ompi/mca/topo/treematch/treematch/LICENSE create mode 100644 ompi/mca/topo/treematch/treematch/tgt_map.c create mode 100644 ompi/mca/topo/treematch/treematch/tgt_to_mat.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_bucket.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_bucket.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_hwloc.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_hwloc.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_kpartitioning.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_kpartitioning.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_malloc.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_malloc.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_mapping.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_mapping.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_mt.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_mt.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_thread_pool.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_thread_pool.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_timings.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_timings.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_tree.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_tree.h create mode 100644 ompi/mca/topo/treematch/treematch/tm_verbose.c create mode 100644 ompi/mca/topo/treematch/treematch/tm_verbose.h create mode 100644 ompi/mca/topo/treematch/treematch/uthash.h create mode 100644 ompi/mca/vprotocol/Makefile.am create mode 100644 ompi/mca/vprotocol/base/Makefile.am create mode 100644 ompi/mca/vprotocol/base/base.h create mode 100644 ompi/mca/vprotocol/base/owner.txt create mode 100644 ompi/mca/vprotocol/base/vprotocol_base.c create mode 100644 ompi/mca/vprotocol/base/vprotocol_base_parasite.c create mode 100644 ompi/mca/vprotocol/base/vprotocol_base_request.c create mode 100644 ompi/mca/vprotocol/base/vprotocol_base_request.h create mode 100644 ompi/mca/vprotocol/base/vprotocol_base_select.c create mode 100644 ompi/mca/vprotocol/example/.opal_ignore create mode 100644 ompi/mca/vprotocol/example/Makefile.am create mode 100644 ompi/mca/vprotocol/example/owner.txt create mode 100644 ompi/mca/vprotocol/example/vprotocol_example.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example.h create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_comm.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_component.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_probe.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_proc.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_progress.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_recv.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_send.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_start.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_start.h create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_wait.c create mode 100644 ompi/mca/vprotocol/example/vprotocol_example_wait.h create mode 100644 ompi/mca/vprotocol/pessimist/Makefile.am create mode 100644 ompi/mca/vprotocol/pessimist/owner.txt create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_comm.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_component.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_event.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_event.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_eventlog.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_eventlog.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_eventlog_protocol.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_probe.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_proc.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_progress.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_recv.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_request.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_request.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_send.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_sender_based.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_sender_based.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_sender_based_types.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_start.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_start.h create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_wait.c create mode 100644 ompi/mca/vprotocol/pessimist/vprotocol_pessimist_wait.h create mode 100644 ompi/mca/vprotocol/vprotocol.h create mode 100644 ompi/message/Makefile.am create mode 100644 ompi/message/message.c create mode 100644 ompi/message/message.h create mode 100644 ompi/mpi/Makefile.am create mode 100644 ompi/mpi/c/Makefile.am create mode 100644 ompi/mpi/c/abort.c create mode 100644 ompi/mpi/c/accumulate.c create mode 100644 ompi/mpi/c/add_error_class.c create mode 100644 ompi/mpi/c/add_error_code.c create mode 100644 ompi/mpi/c/add_error_string.c create mode 100644 ompi/mpi/c/address.c create mode 100644 ompi/mpi/c/allgather.c create mode 100644 ompi/mpi/c/allgatherv.c create mode 100644 ompi/mpi/c/alloc_mem.c create mode 100644 ompi/mpi/c/allreduce.c create mode 100644 ompi/mpi/c/alltoall.c create mode 100644 ompi/mpi/c/alltoallv.c create mode 100644 ompi/mpi/c/alltoallw.c create mode 100644 ompi/mpi/c/attr_delete.c create mode 100644 ompi/mpi/c/attr_fn.c create mode 100644 ompi/mpi/c/attr_get.c create mode 100644 ompi/mpi/c/attr_put.c create mode 100644 ompi/mpi/c/barrier.c create mode 100644 ompi/mpi/c/bcast.c create mode 100644 ompi/mpi/c/bindings.h create mode 100644 ompi/mpi/c/bsend.c create mode 100644 ompi/mpi/c/bsend_init.c create mode 100644 ompi/mpi/c/buffer_attach.c create mode 100644 ompi/mpi/c/buffer_detach.c create mode 100644 ompi/mpi/c/cancel.c create mode 100644 ompi/mpi/c/cart_coords.c create mode 100644 ompi/mpi/c/cart_create.c create mode 100644 ompi/mpi/c/cart_get.c create mode 100644 ompi/mpi/c/cart_map.c create mode 100644 ompi/mpi/c/cart_rank.c create mode 100644 ompi/mpi/c/cart_shift.c create mode 100644 ompi/mpi/c/cart_sub.c create mode 100644 ompi/mpi/c/cartdim_get.c create mode 100644 ompi/mpi/c/close_port.c create mode 100644 ompi/mpi/c/comm_accept.c create mode 100644 ompi/mpi/c/comm_c2f.c create mode 100644 ompi/mpi/c/comm_call_errhandler.c create mode 100644 ompi/mpi/c/comm_compare.c create mode 100644 ompi/mpi/c/comm_connect.c create mode 100644 ompi/mpi/c/comm_create.c create mode 100644 ompi/mpi/c/comm_create_errhandler.c create mode 100644 ompi/mpi/c/comm_create_group.c create mode 100644 ompi/mpi/c/comm_create_keyval.c create mode 100644 ompi/mpi/c/comm_delete_attr.c create mode 100644 ompi/mpi/c/comm_disconnect.c create mode 100644 ompi/mpi/c/comm_dup.c create mode 100644 ompi/mpi/c/comm_dup_with_info.c create mode 100644 ompi/mpi/c/comm_f2c.c create mode 100644 ompi/mpi/c/comm_free.c create mode 100644 ompi/mpi/c/comm_free_keyval.c create mode 100644 ompi/mpi/c/comm_get_attr.c create mode 100644 ompi/mpi/c/comm_get_errhandler.c create mode 100644 ompi/mpi/c/comm_get_info.c create mode 100644 ompi/mpi/c/comm_get_name.c create mode 100644 ompi/mpi/c/comm_get_parent.c create mode 100644 ompi/mpi/c/comm_group.c create mode 100644 ompi/mpi/c/comm_idup.c create mode 100644 ompi/mpi/c/comm_join.c create mode 100644 ompi/mpi/c/comm_rank.c create mode 100644 ompi/mpi/c/comm_remote_group.c create mode 100644 ompi/mpi/c/comm_remote_size.c create mode 100644 ompi/mpi/c/comm_set_attr.c create mode 100644 ompi/mpi/c/comm_set_errhandler.c create mode 100644 ompi/mpi/c/comm_set_info.c create mode 100644 ompi/mpi/c/comm_set_name.c create mode 100644 ompi/mpi/c/comm_size.c create mode 100644 ompi/mpi/c/comm_spawn.c create mode 100644 ompi/mpi/c/comm_spawn_multiple.c create mode 100644 ompi/mpi/c/comm_split.c create mode 100644 ompi/mpi/c/comm_split_type.c create mode 100644 ompi/mpi/c/comm_test_inter.c create mode 100644 ompi/mpi/c/compare_and_swap.c create mode 100644 ompi/mpi/c/dims_create.c create mode 100644 ompi/mpi/c/dist_graph_create.c create mode 100644 ompi/mpi/c/dist_graph_create_adjacent.c create mode 100644 ompi/mpi/c/dist_graph_neighbors.c create mode 100644 ompi/mpi/c/dist_graph_neighbors_count.c create mode 100644 ompi/mpi/c/errhandler_c2f.c create mode 100644 ompi/mpi/c/errhandler_create.c create mode 100644 ompi/mpi/c/errhandler_f2c.c create mode 100644 ompi/mpi/c/errhandler_free.c create mode 100644 ompi/mpi/c/errhandler_get.c create mode 100644 ompi/mpi/c/errhandler_set.c create mode 100644 ompi/mpi/c/error_class.c create mode 100644 ompi/mpi/c/error_string.c create mode 100644 ompi/mpi/c/exscan.c create mode 100644 ompi/mpi/c/fetch_and_op.c create mode 100644 ompi/mpi/c/file_c2f.c create mode 100644 ompi/mpi/c/file_call_errhandler.c create mode 100644 ompi/mpi/c/file_close.c create mode 100644 ompi/mpi/c/file_create_errhandler.c create mode 100644 ompi/mpi/c/file_delete.c create mode 100644 ompi/mpi/c/file_f2c.c create mode 100644 ompi/mpi/c/file_get_amode.c create mode 100644 ompi/mpi/c/file_get_atomicity.c create mode 100644 ompi/mpi/c/file_get_byte_offset.c create mode 100644 ompi/mpi/c/file_get_errhandler.c create mode 100644 ompi/mpi/c/file_get_group.c create mode 100644 ompi/mpi/c/file_get_info.c create mode 100644 ompi/mpi/c/file_get_position.c create mode 100644 ompi/mpi/c/file_get_position_shared.c create mode 100644 ompi/mpi/c/file_get_size.c create mode 100644 ompi/mpi/c/file_get_type_extent.c create mode 100644 ompi/mpi/c/file_get_view.c create mode 100644 ompi/mpi/c/file_iread.c create mode 100644 ompi/mpi/c/file_iread_all.c create mode 100644 ompi/mpi/c/file_iread_at.c create mode 100644 ompi/mpi/c/file_iread_at_all.c create mode 100644 ompi/mpi/c/file_iread_shared.c create mode 100644 ompi/mpi/c/file_iwrite.c create mode 100644 ompi/mpi/c/file_iwrite_all.c create mode 100644 ompi/mpi/c/file_iwrite_at.c create mode 100644 ompi/mpi/c/file_iwrite_at_all.c create mode 100644 ompi/mpi/c/file_iwrite_shared.c create mode 100644 ompi/mpi/c/file_open.c create mode 100644 ompi/mpi/c/file_preallocate.c create mode 100644 ompi/mpi/c/file_read.c create mode 100644 ompi/mpi/c/file_read_all.c create mode 100644 ompi/mpi/c/file_read_all_begin.c create mode 100644 ompi/mpi/c/file_read_all_end.c create mode 100644 ompi/mpi/c/file_read_at.c create mode 100644 ompi/mpi/c/file_read_at_all.c create mode 100644 ompi/mpi/c/file_read_at_all_begin.c create mode 100644 ompi/mpi/c/file_read_at_all_end.c create mode 100644 ompi/mpi/c/file_read_ordered.c create mode 100644 ompi/mpi/c/file_read_ordered_begin.c create mode 100644 ompi/mpi/c/file_read_ordered_end.c create mode 100644 ompi/mpi/c/file_read_shared.c create mode 100644 ompi/mpi/c/file_seek.c create mode 100644 ompi/mpi/c/file_seek_shared.c create mode 100644 ompi/mpi/c/file_set_atomicity.c create mode 100644 ompi/mpi/c/file_set_errhandler.c create mode 100644 ompi/mpi/c/file_set_info.c create mode 100644 ompi/mpi/c/file_set_size.c create mode 100644 ompi/mpi/c/file_set_view.c create mode 100644 ompi/mpi/c/file_sync.c create mode 100644 ompi/mpi/c/file_write.c create mode 100644 ompi/mpi/c/file_write_all.c create mode 100644 ompi/mpi/c/file_write_all_begin.c create mode 100644 ompi/mpi/c/file_write_all_end.c create mode 100644 ompi/mpi/c/file_write_at.c create mode 100644 ompi/mpi/c/file_write_at_all.c create mode 100644 ompi/mpi/c/file_write_at_all_begin.c create mode 100644 ompi/mpi/c/file_write_at_all_end.c create mode 100644 ompi/mpi/c/file_write_ordered.c create mode 100644 ompi/mpi/c/file_write_ordered_begin.c create mode 100644 ompi/mpi/c/file_write_ordered_end.c create mode 100644 ompi/mpi/c/file_write_shared.c create mode 100644 ompi/mpi/c/finalize.c create mode 100644 ompi/mpi/c/finalized.c create mode 100644 ompi/mpi/c/free_mem.c create mode 100644 ompi/mpi/c/gather.c create mode 100644 ompi/mpi/c/gatherv.c create mode 100644 ompi/mpi/c/get.c create mode 100644 ompi/mpi/c/get_accumulate.c create mode 100644 ompi/mpi/c/get_address.c create mode 100644 ompi/mpi/c/get_count.c create mode 100644 ompi/mpi/c/get_elements.c create mode 100644 ompi/mpi/c/get_elements_x.c create mode 100644 ompi/mpi/c/get_library_version.c create mode 100644 ompi/mpi/c/get_processor_name.c create mode 100644 ompi/mpi/c/get_version.c create mode 100644 ompi/mpi/c/graph_create.c create mode 100644 ompi/mpi/c/graph_get.c create mode 100644 ompi/mpi/c/graph_map.c create mode 100644 ompi/mpi/c/graph_neighbors.c create mode 100644 ompi/mpi/c/graph_neighbors_count.c create mode 100644 ompi/mpi/c/graphdims_get.c create mode 100644 ompi/mpi/c/grequest_complete.c create mode 100644 ompi/mpi/c/grequest_start.c create mode 100644 ompi/mpi/c/group_c2f.c create mode 100644 ompi/mpi/c/group_compare.c create mode 100644 ompi/mpi/c/group_difference.c create mode 100644 ompi/mpi/c/group_excl.c create mode 100644 ompi/mpi/c/group_f2c.c create mode 100644 ompi/mpi/c/group_free.c create mode 100644 ompi/mpi/c/group_incl.c create mode 100644 ompi/mpi/c/group_intersection.c create mode 100644 ompi/mpi/c/group_range_excl.c create mode 100644 ompi/mpi/c/group_range_incl.c create mode 100644 ompi/mpi/c/group_rank.c create mode 100644 ompi/mpi/c/group_size.c create mode 100644 ompi/mpi/c/group_translate_ranks.c create mode 100644 ompi/mpi/c/group_union.c create mode 100644 ompi/mpi/c/iallgather.c create mode 100644 ompi/mpi/c/iallgatherv.c create mode 100644 ompi/mpi/c/iallreduce.c create mode 100644 ompi/mpi/c/ialltoall.c create mode 100644 ompi/mpi/c/ialltoallv.c create mode 100644 ompi/mpi/c/ialltoallw.c create mode 100644 ompi/mpi/c/ibarrier.c create mode 100644 ompi/mpi/c/ibcast.c create mode 100644 ompi/mpi/c/ibsend.c create mode 100644 ompi/mpi/c/iexscan.c create mode 100644 ompi/mpi/c/igather.c create mode 100644 ompi/mpi/c/igatherv.c create mode 100644 ompi/mpi/c/improbe.c create mode 100644 ompi/mpi/c/imrecv.c create mode 100644 ompi/mpi/c/ineighbor_allgather.c create mode 100644 ompi/mpi/c/ineighbor_allgatherv.c create mode 100644 ompi/mpi/c/ineighbor_alltoall.c create mode 100644 ompi/mpi/c/ineighbor_alltoallv.c create mode 100644 ompi/mpi/c/ineighbor_alltoallw.c create mode 100644 ompi/mpi/c/info_c2f.c create mode 100644 ompi/mpi/c/info_create.c create mode 100644 ompi/mpi/c/info_delete.c create mode 100644 ompi/mpi/c/info_dup.c create mode 100644 ompi/mpi/c/info_f2c.c create mode 100644 ompi/mpi/c/info_free.c create mode 100644 ompi/mpi/c/info_get.c create mode 100644 ompi/mpi/c/info_get_nkeys.c create mode 100644 ompi/mpi/c/info_get_nthkey.c create mode 100644 ompi/mpi/c/info_get_valuelen.c create mode 100644 ompi/mpi/c/info_set.c create mode 100644 ompi/mpi/c/init.c create mode 100644 ompi/mpi/c/init_thread.c create mode 100644 ompi/mpi/c/initialized.c create mode 100644 ompi/mpi/c/intercomm_create.c create mode 100644 ompi/mpi/c/intercomm_merge.c create mode 100644 ompi/mpi/c/iprobe.c create mode 100644 ompi/mpi/c/irecv.c create mode 100644 ompi/mpi/c/ireduce.c create mode 100644 ompi/mpi/c/ireduce_scatter.c create mode 100644 ompi/mpi/c/ireduce_scatter_block.c create mode 100644 ompi/mpi/c/irsend.c create mode 100644 ompi/mpi/c/is_thread_main.c create mode 100644 ompi/mpi/c/iscan.c create mode 100644 ompi/mpi/c/iscatter.c create mode 100644 ompi/mpi/c/iscatterv.c create mode 100644 ompi/mpi/c/isend.c create mode 100644 ompi/mpi/c/issend.c create mode 100644 ompi/mpi/c/keyval_create.c create mode 100644 ompi/mpi/c/keyval_free.c create mode 100644 ompi/mpi/c/lookup_name.c create mode 100644 ompi/mpi/c/message_c2f.c create mode 100644 ompi/mpi/c/message_f2c.c create mode 100644 ompi/mpi/c/mprobe.c create mode 100644 ompi/mpi/c/mrecv.c create mode 100644 ompi/mpi/c/neighbor_allgather.c create mode 100644 ompi/mpi/c/neighbor_allgatherv.c create mode 100644 ompi/mpi/c/neighbor_alltoall.c create mode 100644 ompi/mpi/c/neighbor_alltoallv.c create mode 100644 ompi/mpi/c/neighbor_alltoallw.c create mode 100644 ompi/mpi/c/op_c2f.c create mode 100644 ompi/mpi/c/op_commutative.c create mode 100644 ompi/mpi/c/op_create.c create mode 100644 ompi/mpi/c/op_f2c.c create mode 100644 ompi/mpi/c/op_free.c create mode 100644 ompi/mpi/c/open_port.c create mode 100644 ompi/mpi/c/pack.c create mode 100644 ompi/mpi/c/pack_external.c create mode 100644 ompi/mpi/c/pack_external_size.c create mode 100644 ompi/mpi/c/pack_size.c create mode 100644 ompi/mpi/c/pcontrol.c create mode 100644 ompi/mpi/c/probe.c create mode 100644 ompi/mpi/c/profile/Makefile.am create mode 100644 ompi/mpi/c/publish_name.c create mode 100644 ompi/mpi/c/put.c create mode 100644 ompi/mpi/c/query_thread.c create mode 100644 ompi/mpi/c/raccumulate.c create mode 100644 ompi/mpi/c/recv.c create mode 100644 ompi/mpi/c/recv_init.c create mode 100644 ompi/mpi/c/reduce.c create mode 100644 ompi/mpi/c/reduce_local.c create mode 100644 ompi/mpi/c/reduce_scatter.c create mode 100644 ompi/mpi/c/reduce_scatter_block.c create mode 100644 ompi/mpi/c/register_datarep.c create mode 100644 ompi/mpi/c/request_c2f.c create mode 100644 ompi/mpi/c/request_f2c.c create mode 100644 ompi/mpi/c/request_free.c create mode 100644 ompi/mpi/c/request_get_status.c create mode 100644 ompi/mpi/c/rget.c create mode 100644 ompi/mpi/c/rget_accumulate.c create mode 100644 ompi/mpi/c/rput.c create mode 100644 ompi/mpi/c/rsend.c create mode 100644 ompi/mpi/c/rsend_init.c create mode 100644 ompi/mpi/c/scan.c create mode 100644 ompi/mpi/c/scatter.c create mode 100644 ompi/mpi/c/scatterv.c create mode 100644 ompi/mpi/c/send.c create mode 100644 ompi/mpi/c/send_init.c create mode 100644 ompi/mpi/c/sendrecv.c create mode 100644 ompi/mpi/c/sendrecv_replace.c create mode 100644 ompi/mpi/c/ssend.c create mode 100644 ompi/mpi/c/ssend_init.c create mode 100644 ompi/mpi/c/start.c create mode 100644 ompi/mpi/c/startall.c create mode 100644 ompi/mpi/c/status_c2f.c create mode 100644 ompi/mpi/c/status_f2c.c create mode 100644 ompi/mpi/c/status_set_cancelled.c create mode 100644 ompi/mpi/c/status_set_elements.c create mode 100644 ompi/mpi/c/status_set_elements_x.c create mode 100644 ompi/mpi/c/test.c create mode 100644 ompi/mpi/c/test_cancelled.c create mode 100644 ompi/mpi/c/testall.c create mode 100644 ompi/mpi/c/testany.c create mode 100644 ompi/mpi/c/testsome.c create mode 100644 ompi/mpi/c/topo_test.c create mode 100644 ompi/mpi/c/type_c2f.c create mode 100644 ompi/mpi/c/type_commit.c create mode 100644 ompi/mpi/c/type_contiguous.c create mode 100644 ompi/mpi/c/type_create_darray.c create mode 100644 ompi/mpi/c/type_create_f90_complex.c create mode 100644 ompi/mpi/c/type_create_f90_integer.c create mode 100644 ompi/mpi/c/type_create_f90_real.c create mode 100644 ompi/mpi/c/type_create_hindexed.c create mode 100644 ompi/mpi/c/type_create_hindexed_block.c create mode 100644 ompi/mpi/c/type_create_hvector.c create mode 100644 ompi/mpi/c/type_create_indexed_block.c create mode 100644 ompi/mpi/c/type_create_keyval.c create mode 100644 ompi/mpi/c/type_create_resized.c create mode 100644 ompi/mpi/c/type_create_struct.c create mode 100644 ompi/mpi/c/type_create_subarray.c create mode 100644 ompi/mpi/c/type_delete_attr.c create mode 100644 ompi/mpi/c/type_dup.c create mode 100644 ompi/mpi/c/type_extent.c create mode 100644 ompi/mpi/c/type_f2c.c create mode 100644 ompi/mpi/c/type_free.c create mode 100644 ompi/mpi/c/type_free_keyval.c create mode 100644 ompi/mpi/c/type_get_attr.c create mode 100644 ompi/mpi/c/type_get_contents.c create mode 100644 ompi/mpi/c/type_get_envelope.c create mode 100644 ompi/mpi/c/type_get_extent.c create mode 100644 ompi/mpi/c/type_get_extent_x.c create mode 100644 ompi/mpi/c/type_get_name.c create mode 100644 ompi/mpi/c/type_get_true_extent.c create mode 100644 ompi/mpi/c/type_get_true_extent_x.c create mode 100644 ompi/mpi/c/type_hindexed.c create mode 100644 ompi/mpi/c/type_hvector.c create mode 100644 ompi/mpi/c/type_indexed.c create mode 100644 ompi/mpi/c/type_lb.c create mode 100644 ompi/mpi/c/type_match_size.c create mode 100644 ompi/mpi/c/type_set_attr.c create mode 100644 ompi/mpi/c/type_set_name.c create mode 100644 ompi/mpi/c/type_size.c create mode 100644 ompi/mpi/c/type_size_x.c create mode 100644 ompi/mpi/c/type_struct.c create mode 100644 ompi/mpi/c/type_ub.c create mode 100644 ompi/mpi/c/type_vector.c create mode 100644 ompi/mpi/c/unpack.c create mode 100644 ompi/mpi/c/unpack_external.c create mode 100644 ompi/mpi/c/unpublish_name.c create mode 100644 ompi/mpi/c/wait.c create mode 100644 ompi/mpi/c/waitall.c create mode 100644 ompi/mpi/c/waitany.c create mode 100644 ompi/mpi/c/waitsome.c create mode 100644 ompi/mpi/c/win_allocate.c create mode 100644 ompi/mpi/c/win_allocate_shared.c create mode 100644 ompi/mpi/c/win_attach.c create mode 100644 ompi/mpi/c/win_c2f.c create mode 100644 ompi/mpi/c/win_call_errhandler.c create mode 100644 ompi/mpi/c/win_complete.c create mode 100644 ompi/mpi/c/win_create.c create mode 100644 ompi/mpi/c/win_create_dynamic.c create mode 100644 ompi/mpi/c/win_create_errhandler.c create mode 100644 ompi/mpi/c/win_create_keyval.c create mode 100644 ompi/mpi/c/win_delete_attr.c create mode 100644 ompi/mpi/c/win_detach.c create mode 100644 ompi/mpi/c/win_f2c.c create mode 100644 ompi/mpi/c/win_fence.c create mode 100644 ompi/mpi/c/win_flush.c create mode 100644 ompi/mpi/c/win_flush_all.c create mode 100644 ompi/mpi/c/win_flush_local.c create mode 100644 ompi/mpi/c/win_flush_local_all.c create mode 100644 ompi/mpi/c/win_free.c create mode 100644 ompi/mpi/c/win_free_keyval.c create mode 100644 ompi/mpi/c/win_get_attr.c create mode 100644 ompi/mpi/c/win_get_errhandler.c create mode 100644 ompi/mpi/c/win_get_group.c create mode 100644 ompi/mpi/c/win_get_info.c create mode 100644 ompi/mpi/c/win_get_name.c create mode 100644 ompi/mpi/c/win_lock.c create mode 100644 ompi/mpi/c/win_lock_all.c create mode 100644 ompi/mpi/c/win_post.c create mode 100644 ompi/mpi/c/win_set_attr.c create mode 100644 ompi/mpi/c/win_set_errhandler.c create mode 100644 ompi/mpi/c/win_set_info.c create mode 100644 ompi/mpi/c/win_set_name.c create mode 100644 ompi/mpi/c/win_shared_query.c create mode 100644 ompi/mpi/c/win_start.c create mode 100644 ompi/mpi/c/win_sync.c create mode 100644 ompi/mpi/c/win_test.c create mode 100644 ompi/mpi/c/win_unlock.c create mode 100644 ompi/mpi/c/win_unlock_all.c create mode 100644 ompi/mpi/c/win_wait.c create mode 100644 ompi/mpi/c/wtick.c create mode 100644 ompi/mpi/c/wtime.c create mode 100644 ompi/mpi/cxx/Makefile.am create mode 100644 ompi/mpi/cxx/comm.cc create mode 100644 ompi/mpi/cxx/comm.h create mode 100644 ompi/mpi/cxx/comm_inln.h create mode 100644 ompi/mpi/cxx/constants.h create mode 100644 ompi/mpi/cxx/cxx_glue.c create mode 100644 ompi/mpi/cxx/cxx_glue.h create mode 100644 ompi/mpi/cxx/datatype.cc create mode 100644 ompi/mpi/cxx/datatype.h create mode 100644 ompi/mpi/cxx/datatype_inln.h create mode 100644 ompi/mpi/cxx/errhandler.h create mode 100644 ompi/mpi/cxx/errhandler_inln.h create mode 100644 ompi/mpi/cxx/exception.h create mode 100644 ompi/mpi/cxx/file.cc create mode 100644 ompi/mpi/cxx/file.h create mode 100644 ompi/mpi/cxx/file_inln.h create mode 100644 ompi/mpi/cxx/functions.h create mode 100644 ompi/mpi/cxx/functions_inln.h create mode 100644 ompi/mpi/cxx/group.h create mode 100644 ompi/mpi/cxx/group_inln.h create mode 100644 ompi/mpi/cxx/info.h create mode 100644 ompi/mpi/cxx/info_inln.h create mode 100644 ompi/mpi/cxx/intercepts.cc create mode 100644 ompi/mpi/cxx/intercomm.h create mode 100644 ompi/mpi/cxx/intercomm_inln.h create mode 100644 ompi/mpi/cxx/intracomm.h create mode 100644 ompi/mpi/cxx/intracomm_inln.h create mode 100644 ompi/mpi/cxx/mpicxx.cc create mode 100644 ompi/mpi/cxx/mpicxx.h create mode 100644 ompi/mpi/cxx/op.h create mode 100644 ompi/mpi/cxx/op_inln.h create mode 100644 ompi/mpi/cxx/request.h create mode 100644 ompi/mpi/cxx/request_inln.h create mode 100644 ompi/mpi/cxx/status.h create mode 100644 ompi/mpi/cxx/status_inln.h create mode 100644 ompi/mpi/cxx/topology.h create mode 100644 ompi/mpi/cxx/topology_inln.h create mode 100644 ompi/mpi/cxx/win.cc create mode 100644 ompi/mpi/cxx/win.h create mode 100644 ompi/mpi/cxx/win_inln.h create mode 100644 ompi/mpi/fortran/base/Makefile.am create mode 100644 ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h create mode 100644 ompi/mpi/fortran/base/attr_fn_f.c create mode 100644 ompi/mpi/fortran/base/constants.h create mode 100644 ompi/mpi/fortran/base/conversion-fn-null-int-interface.h create mode 100644 ompi/mpi/fortran/base/conversion_fn_null_f.c create mode 100644 ompi/mpi/fortran/base/datarep.h create mode 100644 ompi/mpi/fortran/base/f90_accessors.c create mode 100644 ompi/mpi/fortran/base/fint_2_int.h create mode 100755 ompi/mpi/fortran/base/gen-mpi-mangling.pl create mode 100755 ompi/mpi/fortran/base/gen-mpi-sizeof.pl create mode 100644 ompi/mpi/fortran/base/strings.c create mode 100644 ompi/mpi/fortran/base/strings.h create mode 100644 ompi/mpi/fortran/base/test_constants_f.c create mode 100644 ompi/mpi/fortran/c_to_integer_kind_mapping.pdf create mode 100644 ompi/mpi/fortran/common_sym_whitelist.txt create mode 100644 ompi/mpi/fortran/configure-fortran-output-bottom.h create mode 100644 ompi/mpi/fortran/configure-fortran-output.h.in create mode 100644 ompi/mpi/fortran/mpiext/Makefile.am create mode 100644 ompi/mpi/fortran/mpif-h/Makefile.am create mode 100644 ompi/mpi/fortran/mpif-h/abort_f.c create mode 100644 ompi/mpi/fortran/mpif-h/accumulate_f.c create mode 100644 ompi/mpi/fortran/mpif-h/add_error_class_f.c create mode 100644 ompi/mpi/fortran/mpif-h/add_error_code_f.c create mode 100644 ompi/mpi/fortran/mpif-h/add_error_string_f.c create mode 100644 ompi/mpi/fortran/mpif-h/address_f.c create mode 100644 ompi/mpi/fortran/mpif-h/aint_add_f.c create mode 100644 ompi/mpi/fortran/mpif-h/aint_diff_f.c create mode 100644 ompi/mpi/fortran/mpif-h/allgather_f.c create mode 100644 ompi/mpi/fortran/mpif-h/allgatherv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/alloc_mem_f.c create mode 100644 ompi/mpi/fortran/mpif-h/allreduce_f.c create mode 100644 ompi/mpi/fortran/mpif-h/alltoall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/alltoallv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/alltoallw_f.c create mode 100644 ompi/mpi/fortran/mpif-h/attr_delete_f.c create mode 100644 ompi/mpi/fortran/mpif-h/attr_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/attr_put_f.c create mode 100644 ompi/mpi/fortran/mpif-h/barrier_f.c create mode 100644 ompi/mpi/fortran/mpif-h/bcast_f.c create mode 100644 ompi/mpi/fortran/mpif-h/bindings.h create mode 100644 ompi/mpi/fortran/mpif-h/bsend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/bsend_init_f.c create mode 100644 ompi/mpi/fortran/mpif-h/buffer_attach_f.c create mode 100644 ompi/mpi/fortran/mpif-h/buffer_detach_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cancel_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_coords_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_map_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_rank_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_shift_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cart_sub_f.c create mode 100644 ompi/mpi/fortran/mpif-h/cartdim_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/close_port_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_accept_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_call_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_compare_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_connect_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_create_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_create_group_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_create_keyval_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_delete_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_disconnect_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_dup_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_dup_with_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_free_keyval_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_get_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_get_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_get_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_get_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_get_parent_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_group_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_idup_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_join_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_rank_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_remote_group_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_remote_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_set_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_set_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_set_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_set_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_spawn_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_spawn_multiple_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_split_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_split_type_f.c create mode 100644 ompi/mpi/fortran/mpif-h/comm_test_inter_f.c create mode 100644 ompi/mpi/fortran/mpif-h/compare_and_swap_f.c create mode 100644 ompi/mpi/fortran/mpif-h/dims_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/dist_graph_create_adjacent_f.c create mode 100644 ompi/mpi/fortran/mpif-h/dist_graph_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/dist_graph_neighbors_count_f.c create mode 100644 ompi/mpi/fortran/mpif-h/dist_graph_neighbors_f.c create mode 100644 ompi/mpi/fortran/mpif-h/errhandler_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/errhandler_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/errhandler_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/errhandler_set_f.c create mode 100644 ompi/mpi/fortran/mpif-h/error_class_f.c create mode 100644 ompi/mpi/fortran/mpif-h/error_string_f.c create mode 100644 ompi/mpi/fortran/mpif-h/exscan_f.c create mode 100644 ompi/mpi/fortran/mpif-h/f_sync_reg_f.c create mode 100644 ompi/mpi/fortran/mpif-h/fetch_and_op_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_call_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_close_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_create_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_delete_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_amode_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_atomicity_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_byte_offset_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_group_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_position_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_position_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_type_extent_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_get_view_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iread_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iread_at_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iread_at_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iread_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iread_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iwrite_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iwrite_at_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iwrite_at_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iwrite_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_iwrite_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_open_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_preallocate_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_all_begin_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_all_end_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_at_all_begin_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_at_all_end_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_at_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_at_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_ordered_begin_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_ordered_end_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_ordered_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_read_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_seek_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_seek_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_set_atomicity_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_set_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_set_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_set_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_set_view_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_sync_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_all_begin_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_all_end_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_at_all_begin_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_at_all_end_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_at_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_at_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_ordered_begin_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_ordered_end_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_ordered_f.c create mode 100644 ompi/mpi/fortran/mpif-h/file_write_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/finalize_f.c create mode 100644 ompi/mpi/fortran/mpif-h/finalized_f.c create mode 100644 ompi/mpi/fortran/mpif-h/free_mem_f.c create mode 100644 ompi/mpi/fortran/mpif-h/gather_f.c create mode 100644 ompi/mpi/fortran/mpif-h/gatherv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_accumulate_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_address_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_count_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_elements_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_elements_x_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_library_version_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_processor_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/get_version_f.c create mode 100644 ompi/mpi/fortran/mpif-h/graph_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/graph_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/graph_map_f.c create mode 100644 ompi/mpi/fortran/mpif-h/graph_neighbors_count_f.c create mode 100644 ompi/mpi/fortran/mpif-h/graph_neighbors_f.c create mode 100644 ompi/mpi/fortran/mpif-h/graphdims_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/grequest_complete_f.c create mode 100644 ompi/mpi/fortran/mpif-h/grequest_start_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_compare_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_difference_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_excl_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_incl_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_intersection_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_range_excl_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_range_incl_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_rank_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_translate_ranks_f.c create mode 100644 ompi/mpi/fortran/mpif-h/group_union_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iallgather_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iallgatherv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iallreduce_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ialltoall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ialltoallv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ialltoallw_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ibarrier_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ibcast_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ibsend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iexscan_f.c create mode 100644 ompi/mpi/fortran/mpif-h/igather_f.c create mode 100644 ompi/mpi/fortran/mpif-h/igatherv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/improbe_f.c create mode 100644 ompi/mpi/fortran/mpif-h/imrecv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ineighbor_allgather_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ineighbor_allgatherv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ineighbor_alltoall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ineighbor_alltoallv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ineighbor_alltoallw_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_delete_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_dup_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_get_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_get_nkeys_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_get_nthkey_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_get_valuelen_f.c create mode 100644 ompi/mpi/fortran/mpif-h/info_set_f.c create mode 100644 ompi/mpi/fortran/mpif-h/init_f.c create mode 100644 ompi/mpi/fortran/mpif-h/init_thread_f.c create mode 100644 ompi/mpi/fortran/mpif-h/initialized_f.c create mode 100644 ompi/mpi/fortran/mpif-h/intercomm_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/intercomm_merge_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iprobe_f.c create mode 100644 ompi/mpi/fortran/mpif-h/irecv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ireduce_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ireduce_scatter_block_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ireduce_scatter_f.c create mode 100644 ompi/mpi/fortran/mpif-h/irsend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/is_thread_main_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iscan_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iscatter_f.c create mode 100644 ompi/mpi/fortran/mpif-h/iscatterv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/isend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/issend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/keyval_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/keyval_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/lookup_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/mprobe_f.c create mode 100644 ompi/mpi/fortran/mpif-h/mrecv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/neighbor_allgather_f.c create mode 100644 ompi/mpi/fortran/mpif-h/neighbor_allgatherv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/neighbor_alltoall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/neighbor_alltoallv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/neighbor_alltoallw_f.c create mode 100644 ompi/mpi/fortran/mpif-h/op_commutative_f.c create mode 100644 ompi/mpi/fortran/mpif-h/op_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/op_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/open_port_f.c create mode 100644 ompi/mpi/fortran/mpif-h/pack_external_f.c create mode 100644 ompi/mpi/fortran/mpif-h/pack_external_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/pack_f.c create mode 100644 ompi/mpi/fortran/mpif-h/pack_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/pcontrol_f.c create mode 100644 ompi/mpi/fortran/mpif-h/probe_f.c create mode 100644 ompi/mpi/fortran/mpif-h/profile/Makefile.am create mode 100644 ompi/mpi/fortran/mpif-h/prototypes_mpi.h create mode 100644 ompi/mpi/fortran/mpif-h/publish_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/put_f.c create mode 100644 ompi/mpi/fortran/mpif-h/query_thread_f.c create mode 100644 ompi/mpi/fortran/mpif-h/raccumulate_f.c create mode 100644 ompi/mpi/fortran/mpif-h/recv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/recv_init_f.c create mode 100644 ompi/mpi/fortran/mpif-h/reduce_f.c create mode 100644 ompi/mpi/fortran/mpif-h/reduce_local_f.c create mode 100644 ompi/mpi/fortran/mpif-h/reduce_scatter_block_f.c create mode 100644 ompi/mpi/fortran/mpif-h/reduce_scatter_f.c create mode 100644 ompi/mpi/fortran/mpif-h/register_datarep_f.c create mode 100644 ompi/mpi/fortran/mpif-h/request_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/request_get_status_f.c create mode 100644 ompi/mpi/fortran/mpif-h/rget_accumulate_f.c create mode 100644 ompi/mpi/fortran/mpif-h/rget_f.c create mode 100644 ompi/mpi/fortran/mpif-h/rput_f.c create mode 100644 ompi/mpi/fortran/mpif-h/rsend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/rsend_init_f.c create mode 100644 ompi/mpi/fortran/mpif-h/scan_f.c create mode 100644 ompi/mpi/fortran/mpif-h/scatter_f.c create mode 100644 ompi/mpi/fortran/mpif-h/scatterv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/send_f.c create mode 100644 ompi/mpi/fortran/mpif-h/send_init_f.c create mode 100644 ompi/mpi/fortran/mpif-h/sendrecv_f.c create mode 100644 ompi/mpi/fortran/mpif-h/sendrecv_replace_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ssend_f.c create mode 100644 ompi/mpi/fortran/mpif-h/ssend_init_f.c create mode 100644 ompi/mpi/fortran/mpif-h/start_f.c create mode 100644 ompi/mpi/fortran/mpif-h/startall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/status-conversion.h create mode 100644 ompi/mpi/fortran/mpif-h/status_set_cancelled_f.c create mode 100644 ompi/mpi/fortran/mpif-h/status_set_elements_f.c create mode 100644 ompi/mpi/fortran/mpif-h/status_set_elements_x_f.c create mode 100644 ompi/mpi/fortran/mpif-h/test_cancelled_f.c create mode 100644 ompi/mpi/fortran/mpif-h/test_f.c create mode 100644 ompi/mpi/fortran/mpif-h/testall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/testany_f.c create mode 100644 ompi/mpi/fortran/mpif-h/testsome_f.c create mode 100644 ompi/mpi/fortran/mpif-h/topo_test_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_commit_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_contiguous_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_darray_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_f90_complex_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_f90_integer_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_f90_real_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_hindexed_block_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_hindexed_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_hvector_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_indexed_block_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_keyval_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_resized_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_struct_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_create_subarray_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_delete_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_dup_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_extent_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_free_keyval_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_contents_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_envelope_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_extent_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_extent_x_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_true_extent_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_get_true_extent_x_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_hindexed_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_hvector_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_indexed_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_lb_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_match_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_set_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_set_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_size_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_size_x_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_struct_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_ub_f.c create mode 100644 ompi/mpi/fortran/mpif-h/type_vector_f.c create mode 100644 ompi/mpi/fortran/mpif-h/unpack_external_f.c create mode 100644 ompi/mpi/fortran/mpif-h/unpack_f.c create mode 100644 ompi/mpi/fortran/mpif-h/unpublish_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/wait_f.c create mode 100644 ompi/mpi/fortran/mpif-h/waitall_f.c create mode 100644 ompi/mpi/fortran/mpif-h/waitany_f.c create mode 100644 ompi/mpi/fortran/mpif-h/waitsome_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_allocate_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_allocate_shared_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_attach_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_call_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_complete_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_create_dynamic_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_create_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_create_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_create_keyval_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_delete_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_detach_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_fence_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_flush_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_flush_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_flush_local_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_flush_local_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_free_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_free_keyval_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_get_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_get_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_get_group_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_get_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_get_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_lock_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_lock_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_post_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_set_attr_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_set_errhandler_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_set_info_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_set_name_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_shared_query_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_start_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_sync_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_test_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_unlock_all_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_unlock_f.c create mode 100644 ompi/mpi/fortran/mpif-h/win_wait_f.c create mode 100644 ompi/mpi/fortran/mpif-h/wtick_f.c create mode 100644 ompi/mpi/fortran/mpif-h/wtime_f.c create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/ISO_Fortran_binding.h create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/Makefile.am create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/OMPI_Fortran_binding.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/OMPI_Fortran_binding_c.c create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/comm_rank_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/comm_size_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/constants.c create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/constants.h create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/constants.h.fin create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/finalize_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/init_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/mpi-f-interfaces-bind.h create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/mpi-f08-interfaces.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/mpi-f08-types.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/mpi-f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/recv_f08_desc.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/send_f08_desc.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/type_commit_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/type_contiguous_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08-desc/type_vector_f08.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/Makefile.am create mode 100644 ompi/mpi/fortran/use-mpi-f08/abort_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/accumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/add_error_class_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/add_error_code_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/add_error_string_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/aint_add_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/aint_diff_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/allgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/allgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/alloc_mem_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/allreduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/alltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/alltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/alltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/barrier_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/bcast_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/bsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/bsend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/buffer_attach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/buffer_detach.c create mode 100644 ompi/mpi/fortran/use-mpi-f08/buffer_detach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cancel_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_coords_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_map_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_rank_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_shift_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cart_sub_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/cartdim_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/close_port_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_accept_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_call_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_compare_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_connect_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_create_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_create_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_create_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_delete_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_disconnect_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_dup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_dup_with_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_free_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_get_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_get_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_get_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_get_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_get_parent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_idup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_join_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_rank_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_remote_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_remote_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_set_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_set_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_set_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_set_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_spawn_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_spawn_multiple_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_split_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_split_type_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/comm_test_inter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/compare_and_swap_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/constants.c create mode 100644 ompi/mpi/fortran/use-mpi-f08/dims_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/dist_graph_create_adjacent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/dist_graph_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/dist_graph_neighbors_count_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/dist_graph_neighbors_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/errhandler_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/error_class_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/error_string_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/exscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/f_sync_reg_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/fetch_and_op_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_call_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_close_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_create_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_delete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_amode_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_atomicity_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_byte_offset_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_position_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_position_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_type_extent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_get_view_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iread_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iread_at_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iread_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iread_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iread_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iwrite_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iwrite_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iwrite_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_iwrite_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_open_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_preallocate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_at_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_at_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_at_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_ordered_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_ordered_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_ordered_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_read_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_seek_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_seek_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_set_atomicity_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_set_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_set_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_set_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_set_view_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_sync_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_at_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_at_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_at_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_ordered_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_ordered_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_ordered_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/file_write_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/finalize_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/finalized_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/free_mem_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/gather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/gatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_accumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_address_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_count_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_elements_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_elements_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_library_version_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_processor_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/get_version_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/graph_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/graph_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/graph_map_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/graph_neighbors_count_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/graph_neighbors_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/graphdims_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/grequest_complete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/grequest_start_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_compare_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_difference_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_excl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_incl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_intersection_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_range_excl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_range_incl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_rank_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_translate_ranks_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/group_union_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iallgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iallgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iallreduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ialltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ialltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ialltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ibarrier_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ibcast_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ibsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iexscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/igather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/igatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/improbe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/imrecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ineighbor_allgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ineighbor_allgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ineighbor_alltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_delete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_dup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_get_nkeys_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_get_nthkey_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_get_valuelen_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/info_set_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/init_thread_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/initialized_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/intercomm_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/intercomm_merge_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iprobe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/irecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ireduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ireduce_scatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/irsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/is_thread_main_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iscatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/iscatterv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/isend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/issend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/lookup_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h create mode 100644 ompi/mpi/fortran/use-mpi-f08/mpi-f08-callbacks.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mpi-f08-interfaces-callbacks.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mpi-f08-interfaces.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mpi-f08-types.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mpi-f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mprobe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/mrecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/neighbor_allgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/neighbor_allgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/neighbor_alltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/neighbor_alltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/op_commutative_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/op_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/op_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/open_port_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/pack_external_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/pack_external_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/pack_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/pack_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/pcontrol_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/pmpi-f-interfaces-bind.h create mode 100644 ompi/mpi/fortran/use-mpi-f08/pmpi-f08-interfaces.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/probe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pabort_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/paccumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/padd_error_class_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/padd_error_code_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/padd_error_string_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/paint_add_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/paint_diff_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pallgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pallgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/palloc_mem_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pallreduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/palltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/palltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/palltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pbarrier_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pbcast_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pbsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pbsend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pbuffer_attach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pbuffer_detach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcancel_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_coords_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_map_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_rank_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_shift_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcart_sub_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcartdim_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pclose_port_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_accept_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_call_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_compare_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_connect_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_create_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_create_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_create_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_delete_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_disconnect_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_dup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_dup_with_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_free_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_get_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_get_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_get_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_get_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_get_parent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_idup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_join_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_rank_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_remote_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_remote_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_set_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_set_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_set_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_set_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_spawn_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_spawn_multiple_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_split_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_split_type_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcomm_test_inter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pcompare_and_swap_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pdims_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pdist_graph_create_adjacent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pdist_graph_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pdist_graph_neighbors_count_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pdist_graph_neighbors_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/perrhandler_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/perror_class_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/perror_string_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pexscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pf_sync_reg_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfetch_and_op_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_call_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_close_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_create_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_delete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_amode_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_atomicity_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_byte_offset_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_position_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_position_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_type_extent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_get_view_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_iread_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_iread_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_iread_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_iwrite_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_iwrite_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_iwrite_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_open_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_preallocate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_at_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_at_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_at_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_ordered_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_ordered_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_ordered_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_read_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_seek_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_seek_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_set_atomicity_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_set_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_set_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_set_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_set_view_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_sync_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_at_all_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_at_all_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_at_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_at_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_ordered_begin_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_ordered_end_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_ordered_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfile_write_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfinalize_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfinalized_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pfree_mem_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_accumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_address_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_count_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_elements_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_elements_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_library_version_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_processor_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pget_version_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgraph_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgraph_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgraph_map_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgraph_neighbors_count_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgraph_neighbors_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgraphdims_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgrequest_complete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgrequest_start_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_compare_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_difference_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_excl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_incl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_intersection_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_range_excl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_range_incl_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_rank_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_translate_ranks_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pgroup_union_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piallgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piallgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piallreduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pialltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pialltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pialltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pibarrier_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pibcast_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pibsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piexscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pigather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pigatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pimprobe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pimrecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pineighbor_allgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pineighbor_allgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pineighbor_alltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pineighbor_alltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pineighbor_alltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_delete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_dup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_get_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_get_nkeys_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_get_nthkey_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_get_valuelen_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinfo_set_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinit_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinit_thread_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pinitialized_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pintercomm_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pintercomm_merge_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piprobe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pirecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pireduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pireduce_scatter_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pireduce_scatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pirsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pis_thread_main_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piscatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/piscatterv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pisend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pissend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/plookup_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pmprobe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pmrecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pneighbor_allgather_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pneighbor_allgatherv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pneighbor_alltoall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pneighbor_alltoallv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pneighbor_alltoallw_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pop_commutative_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pop_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pop_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/popen_port_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ppack_external_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ppack_external_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ppack_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ppack_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ppcontrol_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pprobe_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ppublish_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pput_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pquery_thread_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/praccumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/precv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/precv_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/preduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/preduce_local_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/preduce_scatter_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/preduce_scatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pregister_datarep_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prequest_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prequest_get_status_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prget_accumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prget_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prput_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/prsend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pscan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pscatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pscatterv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/psend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/psend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/psendrecv_replace_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pssend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pssend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pstart_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pstartall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pstatus_set_cancelled_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pstatus_set_elements_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pstatus_set_elements_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptest_cancelled_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptest_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptestall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptestany_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptestsome_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptopo_test_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_commit_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_contiguous_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_darray_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_f90_complex_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_f90_integer_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_f90_real_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_hindexed_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_hindexed_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_hvector_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_indexed_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_resized_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_struct_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_create_subarray_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_delete_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_dup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_free_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_contents_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_envelope_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_extent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_extent_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_true_extent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_get_true_extent_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_indexed_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_match_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_set_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_set_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_size_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/ptype_vector_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/punpack_external_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/punpack_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/punpublish_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwait_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwaitall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwaitany_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwaitsome_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_allocate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_allocate_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_attach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_call_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_complete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_create_dynamic_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_create_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_create_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_delete_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_detach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_fence_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_flush_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_flush_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_flush_local_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_flush_local_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_free_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_get_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_get_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_get_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_get_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_get_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_lock_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_lock_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_post_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_set_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_set_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_set_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_set_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_shared_query_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_start_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_sync_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_test_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_unlock_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_unlock_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_wait_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/publish_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/put_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/query_thread_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/raccumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/recv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/recv_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/reduce_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/reduce_local_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/reduce_scatter_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/reduce_scatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/register_datarep_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/request_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/request_get_status_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/rget_accumulate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/rget_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/rput_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/rsend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/rsend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/scan_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/scatter_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/scatterv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/send_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/send_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/sendrecv_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/sendrecv_replace_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ssend_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/ssend_init_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/start_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/startall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/status_set_cancelled_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/status_set_elements_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/status_set_elements_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/test_cancelled_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/test_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/testall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/testany_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/tests/contig.f90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/tests/print_array.c create mode 100644 ompi/mpi/fortran/use-mpi-f08/testsome_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/topo_test_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_commit_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_contiguous_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_darray_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_f90_complex_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_f90_integer_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_f90_real_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_hindexed_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_hindexed_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_hvector_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_indexed_block_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_resized_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_struct_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_create_subarray_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_delete_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_dup_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_free_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_contents_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_envelope_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_extent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_extent_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_true_extent_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_get_true_extent_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_indexed_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_match_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_set_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_set_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_size_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_size_x_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/type_vector_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/unpack_external_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/unpack_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/unpublish_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/wait_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/waitall_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/waitany_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/waitsome_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_allocate_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_allocate_shared_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_attach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_call_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_complete_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_create_dynamic_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_create_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_create_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_create_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_delete_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_detach_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_fence_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_flush_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_flush_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_flush_local_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_flush_local_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_free_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_free_keyval_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_get_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_get_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_get_group_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_get_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_get_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_lock_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_lock_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_post_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_set_attr_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_set_errhandler_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_set_info_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_set_name_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_shared_query_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_start_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_sync_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_test_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_unlock_all_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_unlock_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_wait_f08.F90 create mode 100644 ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am create mode 100644 ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-file-interfaces.h.in create mode 100644 ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h.in create mode 100644 ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr.F90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/Makefile.am create mode 100644 ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in create mode 100644 ompi/mpi/fortran/use-mpi-tkr/fortran_sizes.h.in create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi-f90-cptr-interfaces.h create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi-f90-file-interfaces.h create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi-f90-interfaces.h create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi.F90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_aint_add_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_aint_diff_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_comm_spawn_multiple_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_testall_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_testsome_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_waitall_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_waitsome_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_wtick_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/mpi_wtime_f90.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/pmpi-f90-cptr-interfaces.h create mode 100644 ompi/mpi/fortran/use-mpi-tkr/pmpi-f90-file-interfaces.h create mode 100644 ompi/mpi/fortran/use-mpi-tkr/pmpi-f90-interfaces.h create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/align_c.c create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/print_align.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/print_ikinds.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/print_prec_range.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/print_rkinds.f90 create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/send_t.c create mode 100644 ompi/mpi/fortran/use-mpi-tkr/test/test_send.f90 create mode 100644 ompi/mpi/help-mpi-api.txt create mode 100644 ompi/mpi/java/Makefile.am create mode 100644 ompi/mpi/java/README create mode 100644 ompi/mpi/java/c/Makefile.am create mode 100644 ompi/mpi/java/c/mpiJava.h create mode 100644 ompi/mpi/java/c/mpi_CartComm.c create mode 100644 ompi/mpi/java/c/mpi_Comm.c create mode 100644 ompi/mpi/java/c/mpi_Constant.c create mode 100644 ompi/mpi/java/c/mpi_Count.c create mode 100644 ompi/mpi/java/c/mpi_Datatype.c create mode 100644 ompi/mpi/java/c/mpi_Errhandler.c create mode 100644 ompi/mpi/java/c/mpi_File.c create mode 100644 ompi/mpi/java/c/mpi_GraphComm.c create mode 100644 ompi/mpi/java/c/mpi_Group.c create mode 100644 ompi/mpi/java/c/mpi_Info.c create mode 100644 ompi/mpi/java/c/mpi_Intercomm.c create mode 100644 ompi/mpi/java/c/mpi_Intracomm.c create mode 100644 ompi/mpi/java/c/mpi_MPI.c create mode 100644 ompi/mpi/java/c/mpi_Message.c create mode 100644 ompi/mpi/java/c/mpi_Op.c create mode 100644 ompi/mpi/java/c/mpi_Prequest.c create mode 100644 ompi/mpi/java/c/mpi_Request.c create mode 100644 ompi/mpi/java/c/mpi_Status.c create mode 100644 ompi/mpi/java/c/mpi_Win.c create mode 100644 ompi/mpi/java/java/CartComm.java create mode 100644 ompi/mpi/java/java/CartParms.java create mode 100644 ompi/mpi/java/java/Comm.java create mode 100644 ompi/mpi/java/java/Constant.java create mode 100644 ompi/mpi/java/java/Count.java create mode 100644 ompi/mpi/java/java/Datatype.java create mode 100644 ompi/mpi/java/java/DistGraphNeighbors.java create mode 100644 ompi/mpi/java/java/DoubleComplex.java create mode 100644 ompi/mpi/java/java/DoubleInt.java create mode 100644 ompi/mpi/java/java/Errhandler.java create mode 100644 ompi/mpi/java/java/File.java create mode 100644 ompi/mpi/java/java/FileView.java create mode 100644 ompi/mpi/java/java/FloatComplex.java create mode 100644 ompi/mpi/java/java/FloatInt.java create mode 100644 ompi/mpi/java/java/Freeable.java create mode 100644 ompi/mpi/java/java/GraphComm.java create mode 100644 ompi/mpi/java/java/GraphParms.java create mode 100644 ompi/mpi/java/java/Group.java create mode 100644 ompi/mpi/java/java/Info.java create mode 100644 ompi/mpi/java/java/Int2.java create mode 100644 ompi/mpi/java/java/Intercomm.java create mode 100644 ompi/mpi/java/java/Intracomm.java create mode 100644 ompi/mpi/java/java/LongInt.java create mode 100644 ompi/mpi/java/java/MPI.java create mode 100644 ompi/mpi/java/java/MPIException.java create mode 100644 ompi/mpi/java/java/Makefile.am create mode 100644 ompi/mpi/java/java/Message.java create mode 100644 ompi/mpi/java/java/Op.java create mode 100644 ompi/mpi/java/java/Prequest.java create mode 100644 ompi/mpi/java/java/Request.java create mode 100644 ompi/mpi/java/java/ShiftParms.java create mode 100644 ompi/mpi/java/java/ShortInt.java create mode 100644 ompi/mpi/java/java/Status.java create mode 100644 ompi/mpi/java/java/Struct.java create mode 100644 ompi/mpi/java/java/UserFunction.java create mode 100644 ompi/mpi/java/java/Version.java create mode 100644 ompi/mpi/java/java/Win.java create mode 100755 ompi/mpi/man/make_manpage.pl create mode 100644 ompi/mpi/man/man3/MPI.3in create mode 100644 ompi/mpi/man/man3/MPI_Abort.3in create mode 100644 ompi/mpi/man/man3/MPI_Accumulate.3in create mode 100644 ompi/mpi/man/man3/MPI_Add_error_class.3in create mode 100644 ompi/mpi/man/man3/MPI_Add_error_code.3in create mode 100644 ompi/mpi/man/man3/MPI_Add_error_string.3in create mode 100644 ompi/mpi/man/man3/MPI_Address.3in create mode 100644 ompi/mpi/man/man3/MPI_Aint_add.3in create mode 100644 ompi/mpi/man/man3/MPI_Aint_diff.3in create mode 100644 ompi/mpi/man/man3/MPI_Allgather.3in create mode 100644 ompi/mpi/man/man3/MPI_Allgatherv.3in create mode 100644 ompi/mpi/man/man3/MPI_Alloc_mem.3in create mode 100644 ompi/mpi/man/man3/MPI_Allreduce.3in create mode 100644 ompi/mpi/man/man3/MPI_Alltoall.3in create mode 100644 ompi/mpi/man/man3/MPI_Alltoallv.3in create mode 100644 ompi/mpi/man/man3/MPI_Alltoallw.3in create mode 100644 ompi/mpi/man/man3/MPI_Attr_delete.3in create mode 100644 ompi/mpi/man/man3/MPI_Attr_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Attr_put.3in create mode 100644 ompi/mpi/man/man3/MPI_Barrier.3in create mode 100644 ompi/mpi/man/man3/MPI_Bcast.3in create mode 100644 ompi/mpi/man/man3/MPI_Bsend.3in create mode 100644 ompi/mpi/man/man3/MPI_Bsend_init.3in create mode 100644 ompi/mpi/man/man3/MPI_Buffer_attach.3in create mode 100644 ompi/mpi/man/man3/MPI_Buffer_detach.3in create mode 100644 ompi/mpi/man/man3/MPI_Cancel.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_coords.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_map.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_rank.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_shift.3in create mode 100644 ompi/mpi/man/man3/MPI_Cart_sub.3in create mode 100644 ompi/mpi/man/man3/MPI_Cartdim_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Close_port.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_accept.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_call_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_compare.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_connect.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_create_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_create_group.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_create_keyval.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_delete_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_disconnect.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_dup.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_dup_with_info.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_free_keyval.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_get_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_get_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_get_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_get_parent.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_group.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_idup.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_join.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_rank.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_remote_group.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_remote_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_set_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_set_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_set_info.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_set_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_spawn.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_spawn_multiple.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_split.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_split_type.3in create mode 100644 ompi/mpi/man/man3/MPI_Comm_test_inter.3in create mode 100644 ompi/mpi/man/man3/MPI_Compare_and_swap.3in create mode 100644 ompi/mpi/man/man3/MPI_Dims_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Dist_graph_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Dist_graph_create_adjacent.3in create mode 100644 ompi/mpi/man/man3/MPI_Dist_graph_neighbors.3in create mode 100644 ompi/mpi/man/man3/MPI_Dist_graph_neighbors_count.3in create mode 100644 ompi/mpi/man/man3/MPI_Errhandler_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Errhandler_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Errhandler_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Errhandler_set.3in create mode 100644 ompi/mpi/man/man3/MPI_Error_class.3in create mode 100644 ompi/mpi/man/man3/MPI_Error_string.3in create mode 100644 ompi/mpi/man/man3/MPI_Exscan.3in create mode 100644 ompi/mpi/man/man3/MPI_Fetch_and_op.3in create mode 100644 ompi/mpi/man/man3/MPI_File_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_File_call_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_File_close.3in create mode 100644 ompi/mpi/man/man3/MPI_File_create_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_File_delete.3in create mode 100644 ompi/mpi/man/man3/MPI_File_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_amode.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_atomicity.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_byte_offset.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_group.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_position.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_position_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_size.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_type_extent.3in create mode 100644 ompi/mpi/man/man3/MPI_File_get_view.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iread.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iread_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iread_at.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iread_at_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iread_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iwrite.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iwrite_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iwrite_at.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iwrite_at_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_iwrite_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_File_open.3in create mode 100644 ompi/mpi/man/man3/MPI_File_preallocate.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_all_begin.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_all_end.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_at.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_at_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_at_all_begin.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_at_all_end.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_ordered.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_ordered_begin.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_ordered_end.3in create mode 100644 ompi/mpi/man/man3/MPI_File_read_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_File_seek.3in create mode 100644 ompi/mpi/man/man3/MPI_File_seek_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_File_set_atomicity.3in create mode 100644 ompi/mpi/man/man3/MPI_File_set_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_File_set_info.3in create mode 100644 ompi/mpi/man/man3/MPI_File_set_size.3in create mode 100644 ompi/mpi/man/man3/MPI_File_set_view.3in create mode 100644 ompi/mpi/man/man3/MPI_File_sync.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_all_begin.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_all_end.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_at.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_at_all.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_at_all_begin.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_at_all_end.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_ordered.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_ordered_begin.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_ordered_end.3in create mode 100644 ompi/mpi/man/man3/MPI_File_write_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_Finalize.3in create mode 100644 ompi/mpi/man/man3/MPI_Finalized.3in create mode 100644 ompi/mpi/man/man3/MPI_Free_mem.3in create mode 100644 ompi/mpi/man/man3/MPI_Gather.3in create mode 100644 ompi/mpi/man/man3/MPI_Gatherv.3in create mode 100644 ompi/mpi/man/man3/MPI_Get.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_accumulate.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_address.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_count.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_elements.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_elements_x.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_library_version.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_processor_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Get_version.3in create mode 100644 ompi/mpi/man/man3/MPI_Graph_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Graph_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Graph_map.3in create mode 100644 ompi/mpi/man/man3/MPI_Graph_neighbors.3in create mode 100644 ompi/mpi/man/man3/MPI_Graph_neighbors_count.3in create mode 100644 ompi/mpi/man/man3/MPI_Graphdims_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Grequest_complete.3in create mode 100644 ompi/mpi/man/man3/MPI_Grequest_start.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_compare.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_difference.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_excl.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_incl.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_intersection.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_range_excl.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_range_incl.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_rank.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_translate_ranks.3in create mode 100644 ompi/mpi/man/man3/MPI_Group_union.3in create mode 100644 ompi/mpi/man/man3/MPI_Iallgather.3in create mode 100644 ompi/mpi/man/man3/MPI_Iallgatherv.3in create mode 100644 ompi/mpi/man/man3/MPI_Iallreduce.3in create mode 100644 ompi/mpi/man/man3/MPI_Ialltoall.3in create mode 100644 ompi/mpi/man/man3/MPI_Ialltoallv.3in create mode 100644 ompi/mpi/man/man3/MPI_Ialltoallw.3in create mode 100644 ompi/mpi/man/man3/MPI_Ibarrier.3in create mode 100644 ompi/mpi/man/man3/MPI_Ibcast.3in create mode 100644 ompi/mpi/man/man3/MPI_Ibsend.3in create mode 100644 ompi/mpi/man/man3/MPI_Iexscan.3in create mode 100644 ompi/mpi/man/man3/MPI_Igather.3in create mode 100644 ompi/mpi/man/man3/MPI_Igatherv.3in create mode 100644 ompi/mpi/man/man3/MPI_Improbe.3in create mode 100644 ompi/mpi/man/man3/MPI_Imrecv.3in create mode 100644 ompi/mpi/man/man3/MPI_Ineighbor_allgather.3in create mode 100644 ompi/mpi/man/man3/MPI_Ineighbor_allgatherv.3in create mode 100644 ompi/mpi/man/man3/MPI_Ineighbor_alltoall.3in create mode 100644 ompi/mpi/man/man3/MPI_Ineighbor_alltoallv.3in create mode 100644 ompi/mpi/man/man3/MPI_Ineighbor_alltoallw.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_delete.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_dup.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_env.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_get.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_get_nkeys.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_get_nthkey.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_get_valuelen.3in create mode 100644 ompi/mpi/man/man3/MPI_Info_set.3in create mode 100644 ompi/mpi/man/man3/MPI_Init.3in create mode 100644 ompi/mpi/man/man3/MPI_Init_thread.3in create mode 100644 ompi/mpi/man/man3/MPI_Initialized.3in create mode 100644 ompi/mpi/man/man3/MPI_Intercomm_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Intercomm_merge.3in create mode 100644 ompi/mpi/man/man3/MPI_Iprobe.3in create mode 100644 ompi/mpi/man/man3/MPI_Irecv.3in create mode 100644 ompi/mpi/man/man3/MPI_Ireduce.3in create mode 100644 ompi/mpi/man/man3/MPI_Ireduce_scatter.3in create mode 100644 ompi/mpi/man/man3/MPI_Ireduce_scatter_block.3in create mode 100644 ompi/mpi/man/man3/MPI_Irsend.3in create mode 100644 ompi/mpi/man/man3/MPI_Is_thread_main.3in create mode 100644 ompi/mpi/man/man3/MPI_Iscan.3in create mode 100644 ompi/mpi/man/man3/MPI_Iscatter.3in create mode 100644 ompi/mpi/man/man3/MPI_Iscatterv.3in create mode 100644 ompi/mpi/man/man3/MPI_Isend.3in create mode 100644 ompi/mpi/man/man3/MPI_Issend.3in create mode 100644 ompi/mpi/man/man3/MPI_Keyval_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Keyval_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Lookup_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Message_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Message_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Mprobe.3in create mode 100644 ompi/mpi/man/man3/MPI_Mrecv.3in create mode 100644 ompi/mpi/man/man3/MPI_Neighbor_allgather.3in create mode 100644 ompi/mpi/man/man3/MPI_Neighbor_allgatherv.3in create mode 100644 ompi/mpi/man/man3/MPI_Neighbor_alltoall.3in create mode 100644 ompi/mpi/man/man3/MPI_Neighbor_alltoallv.3in create mode 100644 ompi/mpi/man/man3/MPI_Neighbor_alltoallw.3in create mode 100644 ompi/mpi/man/man3/MPI_Op_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Op_commutative.3in create mode 100644 ompi/mpi/man/man3/MPI_Op_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Op_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Op_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Open_port.3in create mode 100644 ompi/mpi/man/man3/MPI_Pack.3in create mode 100644 ompi/mpi/man/man3/MPI_Pack_external.3in create mode 100644 ompi/mpi/man/man3/MPI_Pack_external_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Pack_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Pcontrol.3in create mode 100644 ompi/mpi/man/man3/MPI_Probe.3in create mode 100644 ompi/mpi/man/man3/MPI_Publish_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Put.3in create mode 100644 ompi/mpi/man/man3/MPI_Query_thread.3in create mode 100644 ompi/mpi/man/man3/MPI_Raccumulate.3in create mode 100644 ompi/mpi/man/man3/MPI_Recv.3in create mode 100644 ompi/mpi/man/man3/MPI_Recv_init.3in create mode 100644 ompi/mpi/man/man3/MPI_Reduce.3in create mode 100644 ompi/mpi/man/man3/MPI_Reduce_local.3in create mode 100644 ompi/mpi/man/man3/MPI_Reduce_scatter.3in create mode 100644 ompi/mpi/man/man3/MPI_Reduce_scatter_block.3in create mode 100644 ompi/mpi/man/man3/MPI_Register_datarep.3in create mode 100644 ompi/mpi/man/man3/MPI_Request_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Request_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Request_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Request_get_status.3in create mode 100644 ompi/mpi/man/man3/MPI_Rget.3in create mode 100644 ompi/mpi/man/man3/MPI_Rget_accumulate.3in create mode 100644 ompi/mpi/man/man3/MPI_Rput.3in create mode 100644 ompi/mpi/man/man3/MPI_Rsend.3in create mode 100644 ompi/mpi/man/man3/MPI_Rsend_init.3in create mode 100644 ompi/mpi/man/man3/MPI_Scan.3in create mode 100644 ompi/mpi/man/man3/MPI_Scatter.3in create mode 100644 ompi/mpi/man/man3/MPI_Scatterv.3in create mode 100644 ompi/mpi/man/man3/MPI_Send.3in create mode 100644 ompi/mpi/man/man3/MPI_Send_init.3in create mode 100644 ompi/mpi/man/man3/MPI_Sendrecv.3in create mode 100644 ompi/mpi/man/man3/MPI_Sendrecv_replace.3in create mode 100644 ompi/mpi/man/man3/MPI_Sizeof.3in create mode 100644 ompi/mpi/man/man3/MPI_Ssend.3in create mode 100644 ompi/mpi/man/man3/MPI_Ssend_init.3in create mode 100644 ompi/mpi/man/man3/MPI_Start.3in create mode 100644 ompi/mpi/man/man3/MPI_Startall.3in create mode 100644 ompi/mpi/man/man3/MPI_Status_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Status_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Status_set_cancelled.3in create mode 100644 ompi/mpi/man/man3/MPI_Status_set_elements.3in create mode 100644 ompi/mpi/man/man3/MPI_Status_set_elements_x.3in create mode 100644 ompi/mpi/man/man3/MPI_T_category_changed.3in create mode 100644 ompi/mpi/man/man3/MPI_T_category_get_categories.3in create mode 100644 ompi/mpi/man/man3/MPI_T_category_get_cvars.3in create mode 100644 ompi/mpi/man/man3/MPI_T_category_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_T_category_get_num.3in create mode 100644 ompi/mpi/man/man3/MPI_T_category_get_pvars.3in create mode 100644 ompi/mpi/man/man3/MPI_T_cvar_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_T_cvar_get_num.3in create mode 100644 ompi/mpi/man/man3/MPI_T_cvar_handle_alloc.3in create mode 100644 ompi/mpi/man/man3/MPI_T_cvar_handle_free.3in create mode 100644 ompi/mpi/man/man3/MPI_T_cvar_read.3in create mode 100644 ompi/mpi/man/man3/MPI_T_cvar_write.3in create mode 100644 ompi/mpi/man/man3/MPI_T_enum_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_T_enum_get_item.3in create mode 100644 ompi/mpi/man/man3/MPI_T_finalize.3in create mode 100644 ompi/mpi/man/man3/MPI_T_init_thread.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_get_num.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_handle_alloc.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_handle_free.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_read.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_readreset.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_reset.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_session_create.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_session_free.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_start.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_stop.3in create mode 100644 ompi/mpi/man/man3/MPI_T_pvar_write.3in create mode 100644 ompi/mpi/man/man3/MPI_Test.3in create mode 100644 ompi/mpi/man/man3/MPI_Test_cancelled.3in create mode 100644 ompi/mpi/man/man3/MPI_Testall.3in create mode 100644 ompi/mpi/man/man3/MPI_Testany.3in create mode 100644 ompi/mpi/man/man3/MPI_Testsome.3in create mode 100644 ompi/mpi/man/man3/MPI_Topo_test.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_commit.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_contiguous.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_darray.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_f90_complex.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_f90_integer.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_f90_real.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_hindexed.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_hindexed_block.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_hvector.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_indexed_block.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_keyval.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_resized.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_struct.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_create_subarray.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_delete_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_dup.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_extent.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_free_keyval.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_contents.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_envelope.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_extent.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_extent_x.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_true_extent.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_get_true_extent_x.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_hindexed.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_hvector.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_indexed.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_lb.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_match_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_set_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_set_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_size.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_size_x.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_struct.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_ub.3in create mode 100644 ompi/mpi/man/man3/MPI_Type_vector.3in create mode 100644 ompi/mpi/man/man3/MPI_Unpack.3in create mode 100644 ompi/mpi/man/man3/MPI_Unpack_external.3in create mode 100644 ompi/mpi/man/man3/MPI_Unpublish_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Wait.3in create mode 100644 ompi/mpi/man/man3/MPI_Waitall.3in create mode 100644 ompi/mpi/man/man3/MPI_Waitany.3in create mode 100644 ompi/mpi/man/man3/MPI_Waitsome.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_allocate.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_allocate_shared.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_attach.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_c2f.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_call_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_complete.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_create.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_create_dynamic.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_create_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_create_keyval.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_delete_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_detach.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_f2c.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_fence.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_flush.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_flush_all.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_flush_local.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_flush_local_all.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_free.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_free_keyval.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_get_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_get_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_get_group.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_get_info.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_get_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_lock.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_lock_all.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_post.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_set_attr.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_set_errhandler.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_set_info.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_set_name.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_shared_query.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_start.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_sync.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_test.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_unlock.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_unlock_all.3in create mode 100644 ompi/mpi/man/man3/MPI_Win_wait.3in create mode 100644 ompi/mpi/man/man3/MPI_Wtick.3in create mode 100644 ompi/mpi/man/man3/MPI_Wtime.3in create mode 100644 ompi/mpi/man/man3/Makefile.extra create mode 100644 ompi/mpi/man/man3/OpenMPI.3in create mode 100644 ompi/mpi/tool/Makefile.am create mode 100644 ompi/mpi/tool/category_changed.c create mode 100644 ompi/mpi/tool/category_get_categories.c create mode 100644 ompi/mpi/tool/category_get_cvars.c create mode 100644 ompi/mpi/tool/category_get_index.c create mode 100644 ompi/mpi/tool/category_get_info.c create mode 100644 ompi/mpi/tool/category_get_num.c create mode 100644 ompi/mpi/tool/category_get_pvars.c create mode 100644 ompi/mpi/tool/cvar_get_index.c create mode 100644 ompi/mpi/tool/cvar_get_info.c create mode 100644 ompi/mpi/tool/cvar_get_num.c create mode 100644 ompi/mpi/tool/cvar_handle_alloc.c create mode 100644 ompi/mpi/tool/cvar_handle_free.c create mode 100644 ompi/mpi/tool/cvar_read.c create mode 100644 ompi/mpi/tool/cvar_write.c create mode 100644 ompi/mpi/tool/enum_get_info.c create mode 100644 ompi/mpi/tool/enum_get_item.c create mode 100644 ompi/mpi/tool/finalize.c create mode 100644 ompi/mpi/tool/init_thread.c create mode 100644 ompi/mpi/tool/mpit-internal.h create mode 100644 ompi/mpi/tool/mpit_common.c create mode 100644 ompi/mpi/tool/profile/Makefile.am create mode 100644 ompi/mpi/tool/profile/defines.h create mode 100644 ompi/mpi/tool/pvar_get_index.c create mode 100644 ompi/mpi/tool/pvar_get_info.c create mode 100644 ompi/mpi/tool/pvar_get_num.c create mode 100644 ompi/mpi/tool/pvar_handle_alloc.c create mode 100644 ompi/mpi/tool/pvar_handle_free.c create mode 100644 ompi/mpi/tool/pvar_read.c create mode 100644 ompi/mpi/tool/pvar_readreset.c create mode 100644 ompi/mpi/tool/pvar_reset.c create mode 100644 ompi/mpi/tool/pvar_session_create.c create mode 100644 ompi/mpi/tool/pvar_session_free.c create mode 100644 ompi/mpi/tool/pvar_start.c create mode 100644 ompi/mpi/tool/pvar_stop.c create mode 100644 ompi/mpi/tool/pvar_write.c create mode 100644 ompi/mpiext/Makefile.am create mode 100644 ompi/mpiext/README.txt create mode 100644 ompi/mpiext/affinity/Makefile.am create mode 100644 ompi/mpiext/affinity/README.txt create mode 100644 ompi/mpiext/affinity/c/Makefile.am create mode 100644 ompi/mpiext/affinity/c/OMPI_Affinity_str.3in create mode 100644 ompi/mpiext/affinity/c/example.c create mode 100644 ompi/mpiext/affinity/c/mpiext_affinity_c.h create mode 100644 ompi/mpiext/affinity/c/mpiext_affinity_str.c create mode 100644 ompi/mpiext/affinity/configure.m4 create mode 100644 ompi/mpiext/cr/Makefile.am create mode 100644 ompi/mpiext/cr/c/Makefile.am create mode 100644 ompi/mpiext/cr/c/checkpoint.c create mode 100644 ompi/mpiext/cr/c/inc_register_callback.c create mode 100644 ompi/mpiext/cr/c/migrate.c create mode 100644 ompi/mpiext/cr/c/mpiext_cr_c.h create mode 100644 ompi/mpiext/cr/c/quiesce_checkpoint.c create mode 100644 ompi/mpiext/cr/c/quiesce_end.c create mode 100644 ompi/mpiext/cr/c/quiesce_start.c create mode 100644 ompi/mpiext/cr/c/restart.c create mode 100644 ompi/mpiext/cr/c/self_register_checkpoint.c create mode 100644 ompi/mpiext/cr/c/self_register_continue.c create mode 100644 ompi/mpiext/cr/c/self_register_restart.c create mode 100644 ompi/mpiext/cr/configure.m4 create mode 100644 ompi/mpiext/cuda/Makefile.am create mode 100644 ompi/mpiext/cuda/README.txt create mode 100644 ompi/mpiext/cuda/c/MPIX_Query_cuda_support.3in create mode 100644 ompi/mpiext/cuda/c/Makefile.am create mode 100644 ompi/mpiext/cuda/c/mpiext_cuda.c create mode 100644 ompi/mpiext/cuda/c/mpiext_cuda_c.h.in create mode 100644 ompi/mpiext/cuda/configure.m4 create mode 100644 ompi/mpiext/example/.opal_ignore create mode 100644 ompi/mpiext/example/Makefile.am create mode 100644 ompi/mpiext/example/README.txt create mode 100644 ompi/mpiext/example/c/Makefile.am create mode 100644 ompi/mpiext/example/c/mpiext_example_c.h create mode 100644 ompi/mpiext/example/c/mpiext_example_module.c create mode 100644 ompi/mpiext/example/c/mpiext_example_progress.c create mode 100644 ompi/mpiext/example/c/progress.c create mode 100644 ompi/mpiext/example/configure.m4 create mode 100644 ompi/mpiext/example/mpif-h/Makefile.am create mode 100644 ompi/mpiext/example/mpif-h/mpiext_example_mpifh.h create mode 100644 ompi/mpiext/example/mpif-h/mpiext_example_progress_f.c create mode 100644 ompi/mpiext/example/tests/Makefile create mode 100644 ompi/mpiext/example/tests/Makefile.include create mode 100644 ompi/mpiext/example/tests/progress_c.c create mode 100644 ompi/mpiext/example/tests/progress_mpifh.F90 create mode 100644 ompi/mpiext/example/tests/progress_usempi.F90 create mode 100644 ompi/mpiext/example/tests/progress_usempif08.F90 create mode 100644 ompi/mpiext/example/use-mpi-f08/Makefile.am create mode 100644 ompi/mpiext/example/use-mpi-f08/mpiext_example_progress_f08.F90 create mode 100644 ompi/mpiext/example/use-mpi-f08/mpiext_example_usempif08.h create mode 100644 ompi/mpiext/example/use-mpi/Makefile.am create mode 100644 ompi/mpiext/example/use-mpi/mpiext_example_usempi.h create mode 100644 ompi/mpiext/mpiext.c create mode 100644 ompi/mpiext/mpiext.h create mode 100644 ompi/op/Makefile.am create mode 100644 ompi/op/op.c create mode 100644 ompi/op/op.h create mode 100644 ompi/patterns/comm/Makefile.am create mode 100644 ompi/patterns/comm/allgather.c create mode 100644 ompi/patterns/comm/allreduce.c create mode 100644 ompi/patterns/comm/bcast.c create mode 100644 ompi/patterns/comm/coll_ops.h create mode 100644 ompi/patterns/comm/commpatterns.h create mode 100644 ompi/patterns/net/Makefile.am create mode 100644 ompi/patterns/net/allreduce.c create mode 100644 ompi/patterns/net/coll_ops.h create mode 100644 ompi/patterns/net/netpatterns.h create mode 100644 ompi/patterns/net/netpatterns_base.c create mode 100644 ompi/patterns/net/netpatterns_knomial_tree.c create mode 100644 ompi/patterns/net/netpatterns_knomial_tree.h create mode 100644 ompi/patterns/net/netpatterns_multinomial_tree.c create mode 100644 ompi/patterns/net/netpatterns_nary_tree.c create mode 100644 ompi/peruse/Makefile.am create mode 100644 ompi/peruse/peruse-internal.h create mode 100644 ompi/peruse/peruse.c create mode 100644 ompi/peruse/peruse.h create mode 100644 ompi/peruse/peruse_module.c create mode 100644 ompi/proc/Makefile.am create mode 100644 ompi/proc/proc.c create mode 100644 ompi/proc/proc.h create mode 100644 ompi/request/Makefile.am create mode 100644 ompi/request/grequest.c create mode 100644 ompi/request/grequest.h create mode 100644 ompi/request/req_test.c create mode 100644 ompi/request/req_wait.c create mode 100644 ompi/request/request.c create mode 100644 ompi/request/request.h create mode 100644 ompi/request/request_dbg.h create mode 100644 ompi/request/request_default.h create mode 100644 ompi/runtime/Makefile.am create mode 100644 ompi/runtime/help-mpi-runtime.txt create mode 100644 ompi/runtime/mpiruntime.h create mode 100644 ompi/runtime/ompi_cr.c create mode 100644 ompi/runtime/ompi_cr.h create mode 100644 ompi/runtime/ompi_info_support.c create mode 100644 ompi/runtime/ompi_info_support.h create mode 100644 ompi/runtime/ompi_mpi_abort.c create mode 100644 ompi/runtime/ompi_mpi_dynamics.c create mode 100644 ompi/runtime/ompi_mpi_finalize.c create mode 100644 ompi/runtime/ompi_mpi_init.c create mode 100644 ompi/runtime/ompi_mpi_params.c create mode 100644 ompi/runtime/ompi_mpi_preconnect.c create mode 100644 ompi/runtime/params.h create mode 100644 ompi/tools/Makefile.am create mode 100644 ompi/tools/mpisync/Makefile.am create mode 100644 ompi/tools/mpisync/hpctimer.c create mode 100644 ompi/tools/mpisync/hpctimer.h create mode 100644 ompi/tools/mpisync/mpigclock.c create mode 100644 ompi/tools/mpisync/mpigclock.h create mode 100755 ompi/tools/mpisync/mpirun_prof create mode 100644 ompi/tools/mpisync/mpisync.1in create mode 100755 ompi/tools/mpisync/ompi_timing_post create mode 100644 ompi/tools/mpisync/sync.c create mode 100644 ompi/tools/ompi_info/Makefile.am create mode 100644 ompi/tools/ompi_info/ompi_info.1in create mode 100644 ompi/tools/ompi_info/ompi_info.c create mode 100644 ompi/tools/ompi_info/ompi_info.h create mode 100644 ompi/tools/ompi_info/param.c create mode 100644 ompi/tools/wrappers/Makefile.am create mode 100644 ompi/tools/wrappers/mpic++-wrapper-data.txt.in create mode 100644 ompi/tools/wrappers/mpicc-wrapper-data.txt.in create mode 100644 ompi/tools/wrappers/mpif77.1in create mode 100644 ompi/tools/wrappers/mpifort-wrapper-data.txt.in create mode 100644 ompi/tools/wrappers/mpijavac.1 create mode 100644 ompi/tools/wrappers/mpijavac.pl.in create mode 100644 ompi/tools/wrappers/ompi-c.pc.in create mode 100644 ompi/tools/wrappers/ompi-cxx.pc.in create mode 100644 ompi/tools/wrappers/ompi-fort.pc.in create mode 100644 ompi/tools/wrappers/ompi.pc.in create mode 100644 ompi/tools/wrappers/ompi_wrapper_script.in create mode 100644 ompi/win/Makefile.am create mode 100644 ompi/win/win.c create mode 100644 ompi/win/win.h create mode 100644 opal/Makefile.am create mode 100644 opal/asm/Makefile.am create mode 100644 opal/asm/asm-data.txt create mode 100644 opal/asm/asm.c create mode 100644 opal/asm/base/AMD64.asm create mode 100644 opal/asm/base/ARM.asm create mode 100644 opal/asm/base/IA32.asm create mode 100644 opal/asm/base/IA64.asm create mode 100644 opal/asm/base/MIPS.asm create mode 100644 opal/asm/base/POWERPC32.asm create mode 100644 opal/asm/base/POWERPC64.asm create mode 100644 opal/asm/base/SPARCV9_32.asm create mode 100644 opal/asm/base/SPARCV9_64.asm create mode 100644 opal/asm/base/aix.conf create mode 100644 opal/asm/base/default.conf create mode 100644 opal/asm/generate-all-asm.pl create mode 100644 opal/asm/generate-asm.pl create mode 100644 opal/class/Makefile.am create mode 100644 opal/class/opal_bitmap.c create mode 100644 opal/class/opal_bitmap.h create mode 100644 opal/class/opal_fifo.c create mode 100644 opal/class/opal_fifo.h create mode 100644 opal/class/opal_free_list.c create mode 100644 opal/class/opal_free_list.h create mode 100644 opal/class/opal_graph.c create mode 100644 opal/class/opal_graph.h create mode 100644 opal/class/opal_hash_table.c create mode 100644 opal/class/opal_hash_table.h create mode 100644 opal/class/opal_hotel.c create mode 100644 opal/class/opal_hotel.h create mode 100644 opal/class/opal_lifo.c create mode 100644 opal/class/opal_lifo.h create mode 100644 opal/class/opal_list.c create mode 100644 opal/class/opal_list.h create mode 100644 opal/class/opal_object.c create mode 100644 opal/class/opal_object.h create mode 100644 opal/class/opal_pointer_array.c create mode 100644 opal/class/opal_pointer_array.h create mode 100644 opal/class/opal_rb_tree.c create mode 100644 opal/class/opal_rb_tree.h create mode 100644 opal/class/opal_ring_buffer.c create mode 100644 opal/class/opal_ring_buffer.h create mode 100644 opal/class/opal_tree.c create mode 100644 opal/class/opal_tree.h create mode 100644 opal/class/opal_value_array.c create mode 100644 opal/class/opal_value_array.h create mode 100644 opal/common_sym_whitelist.txt create mode 100644 opal/datatype/Makefile.am create mode 100644 opal/datatype/opal_convertor.c create mode 100644 opal/datatype/opal_convertor.h create mode 100644 opal/datatype/opal_convertor_internal.h create mode 100644 opal/datatype/opal_convertor_raw.c create mode 100644 opal/datatype/opal_copy_functions.c create mode 100644 opal/datatype/opal_copy_functions_heterogeneous.c create mode 100644 opal/datatype/opal_datatype.h create mode 100644 opal/datatype/opal_datatype_add.c create mode 100644 opal/datatype/opal_datatype_checksum.h create mode 100644 opal/datatype/opal_datatype_clone.c create mode 100644 opal/datatype/opal_datatype_copy.c create mode 100644 opal/datatype/opal_datatype_copy.h create mode 100644 opal/datatype/opal_datatype_create.c create mode 100644 opal/datatype/opal_datatype_create_contiguous.c create mode 100644 opal/datatype/opal_datatype_cuda.c create mode 100644 opal/datatype/opal_datatype_cuda.h create mode 100644 opal/datatype/opal_datatype_destroy.c create mode 100644 opal/datatype/opal_datatype_dump.c create mode 100644 opal/datatype/opal_datatype_fake_stack.c create mode 100644 opal/datatype/opal_datatype_get_count.c create mode 100644 opal/datatype/opal_datatype_internal.h create mode 100644 opal/datatype/opal_datatype_memcpy.h create mode 100644 opal/datatype/opal_datatype_module.c create mode 100644 opal/datatype/opal_datatype_optimize.c create mode 100644 opal/datatype/opal_datatype_pack.c create mode 100644 opal/datatype/opal_datatype_pack.h create mode 100644 opal/datatype/opal_datatype_position.c create mode 100644 opal/datatype/opal_datatype_prototypes.h create mode 100644 opal/datatype/opal_datatype_resize.c create mode 100644 opal/datatype/opal_datatype_unpack.c create mode 100644 opal/datatype/opal_datatype_unpack.h create mode 100644 opal/dss/Makefile.am create mode 100644 opal/dss/dss.h create mode 100644 opal/dss/dss_compare.c create mode 100644 opal/dss/dss_copy.c create mode 100644 opal/dss/dss_dump.c create mode 100644 opal/dss/dss_internal.h create mode 100644 opal/dss/dss_internal_functions.c create mode 100644 opal/dss/dss_load_unload.c create mode 100644 opal/dss/dss_lookup.c create mode 100644 opal/dss/dss_open_close.c create mode 100644 opal/dss/dss_pack.c create mode 100644 opal/dss/dss_peek.c create mode 100644 opal/dss/dss_print.c create mode 100644 opal/dss/dss_register.c create mode 100644 opal/dss/dss_types.h create mode 100644 opal/dss/dss_unpack.c create mode 100644 opal/etc/Makefile.am create mode 100644 opal/etc/openmpi-mca-params.conf create mode 100644 opal/include/Makefile.am create mode 100644 opal/include/opal/Makefile.am create mode 100644 opal/include/opal/align.h create mode 100644 opal/include/opal/constants.h create mode 100644 opal/include/opal/hash_string.h create mode 100644 opal/include/opal/opal_portable_platform.h create mode 100644 opal/include/opal/opal_socket_errno.h create mode 100644 opal/include/opal/prefetch.h create mode 100644 opal/include/opal/sys/Makefile.am create mode 100644 opal/include/opal/sys/amd64/Makefile.am create mode 100644 opal/include/opal/sys/amd64/atomic.h create mode 100644 opal/include/opal/sys/amd64/timer.h create mode 100644 opal/include/opal/sys/amd64/update.sh create mode 100644 opal/include/opal/sys/architecture.h create mode 100644 opal/include/opal/sys/arm/Makefile.am create mode 100644 opal/include/opal/sys/arm/atomic.h create mode 100644 opal/include/opal/sys/arm/timer.h create mode 100644 opal/include/opal/sys/arm/update.sh create mode 100644 opal/include/opal/sys/arm64/Makefile.am create mode 100644 opal/include/opal/sys/arm64/atomic.h create mode 100644 opal/include/opal/sys/arm64/timer.h create mode 100644 opal/include/opal/sys/arm64/update.sh create mode 100644 opal/include/opal/sys/atomic.h create mode 100644 opal/include/opal/sys/atomic_impl.h create mode 100644 opal/include/opal/sys/cma.h create mode 100644 opal/include/opal/sys/gcc_builtin/Makefile.am create mode 100644 opal/include/opal/sys/gcc_builtin/atomic.h create mode 100644 opal/include/opal/sys/ia32/Makefile.am create mode 100644 opal/include/opal/sys/ia32/atomic.h create mode 100644 opal/include/opal/sys/ia32/timer.h create mode 100644 opal/include/opal/sys/ia32/update.sh create mode 100644 opal/include/opal/sys/ia64/Makefile.am create mode 100644 opal/include/opal/sys/ia64/atomic.h create mode 100644 opal/include/opal/sys/ia64/timer.h create mode 100644 opal/include/opal/sys/ia64/update.sh create mode 100644 opal/include/opal/sys/mips/Makefile.am create mode 100644 opal/include/opal/sys/mips/atomic.h create mode 100644 opal/include/opal/sys/mips/timer.h create mode 100644 opal/include/opal/sys/mips/update.sh create mode 100644 opal/include/opal/sys/osx/Makefile.am create mode 100644 opal/include/opal/sys/osx/atomic.h create mode 100644 opal/include/opal/sys/powerpc/Makefile.am create mode 100644 opal/include/opal/sys/powerpc/atomic.h create mode 100644 opal/include/opal/sys/powerpc/timer.h create mode 100644 opal/include/opal/sys/powerpc/update.sh create mode 100644 opal/include/opal/sys/sparcv9/Makefile.am create mode 100644 opal/include/opal/sys/sparcv9/atomic.h create mode 100644 opal/include/opal/sys/sparcv9/timer.h create mode 100644 opal/include/opal/sys/sparcv9/update.sh create mode 100644 opal/include/opal/sys/sync_builtin/Makefile.am create mode 100644 opal/include/opal/sys/sync_builtin/atomic.h create mode 100644 opal/include/opal/sys/timer.h create mode 100644 opal/include/opal/types.h create mode 100644 opal/include/opal/version.h.in create mode 100644 opal/include/opal_config_bottom.h create mode 100644 opal/include/opal_config_top.h create mode 100644 opal/include/opal_stdint.h create mode 100644 opal/mca/Makefile.am create mode 100644 opal/mca/allocator/Makefile.am create mode 100644 opal/mca/allocator/allocator.h create mode 100644 opal/mca/allocator/base/Makefile.am create mode 100644 opal/mca/allocator/base/allocator_base_frame.c create mode 100644 opal/mca/allocator/base/base.h create mode 100644 opal/mca/allocator/base/owner.txt create mode 100644 opal/mca/allocator/basic/Makefile.am create mode 100644 opal/mca/allocator/basic/allocator_basic.c create mode 100644 opal/mca/allocator/basic/allocator_basic.h create mode 100644 opal/mca/allocator/basic/owner.txt create mode 100644 opal/mca/allocator/bucket/Makefile.am create mode 100644 opal/mca/allocator/bucket/allocator_bucket.c create mode 100644 opal/mca/allocator/bucket/allocator_bucket_alloc.c create mode 100644 opal/mca/allocator/bucket/allocator_bucket_alloc.h create mode 100644 opal/mca/allocator/bucket/owner.txt create mode 100644 opal/mca/backtrace/Makefile.am create mode 100644 opal/mca/backtrace/backtrace.h create mode 100644 opal/mca/backtrace/base/Makefile.am create mode 100644 opal/mca/backtrace/base/backtrace_component.c create mode 100644 opal/mca/backtrace/base/base.h create mode 100644 opal/mca/backtrace/base/owner.txt create mode 100644 opal/mca/backtrace/configure.m4 create mode 100644 opal/mca/backtrace/execinfo/Makefile.am create mode 100644 opal/mca/backtrace/execinfo/backtrace_execinfo.c create mode 100644 opal/mca/backtrace/execinfo/backtrace_execinfo_component.c create mode 100644 opal/mca/backtrace/execinfo/configure.m4 create mode 100644 opal/mca/backtrace/execinfo/owner.txt create mode 100644 opal/mca/backtrace/none/Makefile.am create mode 100644 opal/mca/backtrace/none/backtrace_none.c create mode 100644 opal/mca/backtrace/none/backtrace_none_component.c create mode 100644 opal/mca/backtrace/none/configure.m4 create mode 100644 opal/mca/backtrace/none/owner.txt create mode 100644 opal/mca/backtrace/printstack/Makefile.am create mode 100644 opal/mca/backtrace/printstack/backtrace_printstack.c create mode 100644 opal/mca/backtrace/printstack/backtrace_printstack_component.c create mode 100644 opal/mca/backtrace/printstack/configure.m4 create mode 100644 opal/mca/backtrace/printstack/owner.txt create mode 100644 opal/mca/base/Makefile.am create mode 100644 opal/mca/base/base.h create mode 100644 opal/mca/base/help-mca-base.txt create mode 100644 opal/mca/base/help-mca-var.txt create mode 100644 opal/mca/base/mca_base_close.c create mode 100644 opal/mca/base/mca_base_cmd_line.c create mode 100644 opal/mca/base/mca_base_component_compare.c create mode 100644 opal/mca/base/mca_base_component_find.c create mode 100644 opal/mca/base/mca_base_component_repository.c create mode 100644 opal/mca/base/mca_base_component_repository.h create mode 100644 opal/mca/base/mca_base_components_close.c create mode 100644 opal/mca/base/mca_base_components_open.c create mode 100644 opal/mca/base/mca_base_components_register.c create mode 100644 opal/mca/base/mca_base_components_select.c create mode 100644 opal/mca/base/mca_base_framework.c create mode 100644 opal/mca/base/mca_base_framework.h create mode 100644 opal/mca/base/mca_base_list.c create mode 100644 opal/mca/base/mca_base_open.c create mode 100644 opal/mca/base/mca_base_parse_paramfile.c create mode 100644 opal/mca/base/mca_base_pvar.c create mode 100644 opal/mca/base/mca_base_pvar.h create mode 100644 opal/mca/base/mca_base_var.c create mode 100644 opal/mca/base/mca_base_var.h create mode 100644 opal/mca/base/mca_base_var_enum.c create mode 100644 opal/mca/base/mca_base_var_enum.h create mode 100644 opal/mca/base/mca_base_var_group.c create mode 100644 opal/mca/base/mca_base_var_group.h create mode 100644 opal/mca/base/mca_base_vari.h create mode 100644 opal/mca/btl/Makefile.am create mode 100644 opal/mca/btl/base/Makefile.am create mode 100644 opal/mca/btl/base/base.h create mode 100644 opal/mca/btl/base/btl_base_error.c create mode 100644 opal/mca/btl/base/btl_base_error.h create mode 100644 opal/mca/btl/base/btl_base_frame.c create mode 100644 opal/mca/btl/base/btl_base_mca.c create mode 100644 opal/mca/btl/base/btl_base_select.c create mode 100644 opal/mca/btl/base/help-mpi-btl-base.txt create mode 100644 opal/mca/btl/base/owner.txt create mode 100644 opal/mca/btl/btl.h create mode 100644 opal/mca/btl/openib/Makefile.am create mode 100644 opal/mca/btl/openib/btl-openib-benchmark create mode 100644 opal/mca/btl/openib/btl_openib.c create mode 100644 opal/mca/btl/openib/btl_openib.h create mode 100644 opal/mca/btl/openib/btl_openib_async.c create mode 100644 opal/mca/btl/openib/btl_openib_async.h create mode 100644 opal/mca/btl/openib/btl_openib_atomic.c create mode 100644 opal/mca/btl/openib/btl_openib_component.c create mode 100644 opal/mca/btl/openib/btl_openib_eager_rdma.h create mode 100644 opal/mca/btl/openib/btl_openib_endpoint.c create mode 100644 opal/mca/btl/openib/btl_openib_endpoint.h create mode 100644 opal/mca/btl/openib/btl_openib_frag.c create mode 100644 opal/mca/btl/openib/btl_openib_frag.h create mode 100644 opal/mca/btl/openib/btl_openib_get.c create mode 100644 opal/mca/btl/openib/btl_openib_ini.c create mode 100644 opal/mca/btl/openib/btl_openib_ini.h create mode 100644 opal/mca/btl/openib/btl_openib_ip.c create mode 100644 opal/mca/btl/openib/btl_openib_ip.h create mode 100644 opal/mca/btl/openib/btl_openib_lex.h create mode 100644 opal/mca/btl/openib/btl_openib_lex.l create mode 100644 opal/mca/btl/openib/btl_openib_mca.c create mode 100644 opal/mca/btl/openib/btl_openib_mca.h create mode 100644 opal/mca/btl/openib/btl_openib_proc.c create mode 100644 opal/mca/btl/openib/btl_openib_proc.h create mode 100644 opal/mca/btl/openib/btl_openib_put.c create mode 100644 opal/mca/btl/openib/btl_openib_xrc.c create mode 100644 opal/mca/btl/openib/btl_openib_xrc.h create mode 100644 opal/mca/btl/openib/common_sym_whitelist.txt create mode 100644 opal/mca/btl/openib/configure.m4 create mode 100644 opal/mca/btl/openib/connect/base.h create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_base.c create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_empty.c create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_empty.h create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_rdmacm.c create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_rdmacm.h create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_sl.c create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_sl.h create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_udcm.c create mode 100644 opal/mca/btl/openib/connect/btl_openib_connect_udcm.h create mode 100644 opal/mca/btl/openib/connect/connect.h create mode 100644 opal/mca/btl/openib/connect/help-mpi-btl-openib-cpc-base.txt create mode 100644 opal/mca/btl/openib/connect/help-mpi-btl-openib-cpc-rdmacm.txt create mode 100644 opal/mca/btl/openib/help-mpi-btl-openib.txt create mode 100644 opal/mca/btl/openib/mca-btl-openib-device-params.ini create mode 100644 opal/mca/btl/openib/owner.txt create mode 100644 opal/mca/btl/portals4/Makefile.am create mode 100644 opal/mca/btl/portals4/btl_portals4.c create mode 100644 opal/mca/btl/portals4/btl_portals4.h create mode 100644 opal/mca/btl/portals4/btl_portals4_component.c create mode 100644 opal/mca/btl/portals4/btl_portals4_endpoint.h create mode 100644 opal/mca/btl/portals4/btl_portals4_frag.c create mode 100644 opal/mca/btl/portals4/btl_portals4_frag.h create mode 100644 opal/mca/btl/portals4/btl_portals4_rdma.c create mode 100644 opal/mca/btl/portals4/btl_portals4_recv.c create mode 100644 opal/mca/btl/portals4/btl_portals4_recv.h create mode 100644 opal/mca/btl/portals4/btl_portals4_send.c create mode 100644 opal/mca/btl/portals4/configure.m4 create mode 100644 opal/mca/btl/portals4/owner.txt create mode 100644 opal/mca/btl/scif/Makefile.am create mode 100644 opal/mca/btl/scif/btl_scif.h create mode 100644 opal/mca/btl/scif/btl_scif_add_procs.c create mode 100644 opal/mca/btl/scif/btl_scif_component.c create mode 100644 opal/mca/btl/scif/btl_scif_endpoint.c create mode 100644 opal/mca/btl/scif/btl_scif_endpoint.h create mode 100644 opal/mca/btl/scif/btl_scif_frag.c create mode 100644 opal/mca/btl/scif/btl_scif_frag.h create mode 100644 opal/mca/btl/scif/btl_scif_get.c create mode 100644 opal/mca/btl/scif/btl_scif_module.c create mode 100644 opal/mca/btl/scif/btl_scif_put.c create mode 100644 opal/mca/btl/scif/btl_scif_send.c create mode 100644 opal/mca/btl/scif/configure.m4 create mode 100644 opal/mca/btl/scif/owner.txt create mode 100644 opal/mca/btl/self/Makefile.am create mode 100644 opal/mca/btl/self/btl_self.c create mode 100644 opal/mca/btl/self/btl_self.h create mode 100644 opal/mca/btl/self/btl_self_component.c create mode 100644 opal/mca/btl/self/btl_self_frag.c create mode 100644 opal/mca/btl/self/btl_self_frag.h create mode 100644 opal/mca/btl/self/owner.txt create mode 100644 opal/mca/btl/sm/Makefile.am create mode 100644 opal/mca/btl/sm/btl_sm.c create mode 100644 opal/mca/btl/sm/btl_sm.h create mode 100644 opal/mca/btl/sm/btl_sm_component.c create mode 100644 opal/mca/btl/sm/btl_sm_endpoint.h create mode 100644 opal/mca/btl/sm/btl_sm_fifo.h create mode 100644 opal/mca/btl/sm/btl_sm_frag.c create mode 100644 opal/mca/btl/sm/btl_sm_frag.h create mode 100644 opal/mca/btl/sm/configure.m4 create mode 100644 opal/mca/btl/sm/help-mpi-btl-sm.txt create mode 100644 opal/mca/btl/sm/owner.txt create mode 100644 opal/mca/btl/smcuda/Makefile.am create mode 100644 opal/mca/btl/smcuda/README create mode 100644 opal/mca/btl/smcuda/btl_smcuda.c create mode 100644 opal/mca/btl/smcuda/btl_smcuda.h create mode 100644 opal/mca/btl/smcuda/btl_smcuda_component.c create mode 100644 opal/mca/btl/smcuda/btl_smcuda_endpoint.h create mode 100644 opal/mca/btl/smcuda/btl_smcuda_fifo.h create mode 100644 opal/mca/btl/smcuda/btl_smcuda_frag.c create mode 100644 opal/mca/btl/smcuda/btl_smcuda_frag.h create mode 100644 opal/mca/btl/smcuda/configure.m4 create mode 100644 opal/mca/btl/smcuda/help-mpi-btl-smcuda.txt create mode 100644 opal/mca/btl/smcuda/owner.txt create mode 100644 opal/mca/btl/tcp/Makefile.am create mode 100644 opal/mca/btl/tcp/btl_tcp.c create mode 100644 opal/mca/btl/tcp/btl_tcp.h create mode 100644 opal/mca/btl/tcp/btl_tcp_addr.h create mode 100644 opal/mca/btl/tcp/btl_tcp_component.c create mode 100644 opal/mca/btl/tcp/btl_tcp_endpoint.c create mode 100644 opal/mca/btl/tcp/btl_tcp_endpoint.h create mode 100644 opal/mca/btl/tcp/btl_tcp_frag.c create mode 100644 opal/mca/btl/tcp/btl_tcp_frag.h create mode 100644 opal/mca/btl/tcp/btl_tcp_ft.c create mode 100644 opal/mca/btl/tcp/btl_tcp_ft.h create mode 100644 opal/mca/btl/tcp/btl_tcp_hdr.h create mode 100644 opal/mca/btl/tcp/btl_tcp_proc.c create mode 100644 opal/mca/btl/tcp/btl_tcp_proc.h create mode 100644 opal/mca/btl/tcp/configure.m4 create mode 100644 opal/mca/btl/tcp/help-mpi-btl-tcp.txt create mode 100644 opal/mca/btl/tcp/owner.txt create mode 100644 opal/mca/btl/template/.opal_ignore create mode 100644 opal/mca/btl/template/.opal_unignore create mode 100644 opal/mca/btl/template/Makefile.am create mode 100644 opal/mca/btl/template/btl_template.c create mode 100644 opal/mca/btl/template/btl_template.h create mode 100644 opal/mca/btl/template/btl_template_component.c create mode 100644 opal/mca/btl/template/btl_template_endpoint.c create mode 100644 opal/mca/btl/template/btl_template_endpoint.h create mode 100644 opal/mca/btl/template/btl_template_frag.c create mode 100644 opal/mca/btl/template/btl_template_frag.h create mode 100644 opal/mca/btl/template/btl_template_proc.c create mode 100644 opal/mca/btl/template/btl_template_proc.h create mode 100644 opal/mca/btl/template/netpipe-btl-template.txt create mode 100644 opal/mca/btl/template/owner.txt create mode 100644 opal/mca/btl/template/sample-btl-template.conf create mode 100644 opal/mca/btl/ugni/Makefile.am create mode 100644 opal/mca/btl/ugni/btl_ugni.h create mode 100644 opal/mca/btl/ugni/btl_ugni_add_procs.c create mode 100644 opal/mca/btl/ugni/btl_ugni_atomic.c create mode 100644 opal/mca/btl/ugni/btl_ugni_component.c create mode 100644 opal/mca/btl/ugni/btl_ugni_endpoint.c create mode 100644 opal/mca/btl/ugni/btl_ugni_endpoint.h create mode 100644 opal/mca/btl/ugni/btl_ugni_frag.c create mode 100644 opal/mca/btl/ugni/btl_ugni_frag.h create mode 100644 opal/mca/btl/ugni/btl_ugni_get.c create mode 100644 opal/mca/btl/ugni/btl_ugni_module.c create mode 100644 opal/mca/btl/ugni/btl_ugni_prepare.h create mode 100644 opal/mca/btl/ugni/btl_ugni_progress_thread.c create mode 100644 opal/mca/btl/ugni/btl_ugni_put.c create mode 100644 opal/mca/btl/ugni/btl_ugni_rdma.h create mode 100644 opal/mca/btl/ugni/btl_ugni_send.c create mode 100644 opal/mca/btl/ugni/btl_ugni_smsg.c create mode 100644 opal/mca/btl/ugni/btl_ugni_smsg.h create mode 100644 opal/mca/btl/ugni/configure.m4 create mode 100644 opal/mca/btl/ugni/owner.txt create mode 100644 opal/mca/btl/usnic/Makefile.am create mode 100644 opal/mca/btl/usnic/README.test create mode 100644 opal/mca/btl/usnic/README.txt create mode 100644 opal/mca/btl/usnic/btl_usnic.h create mode 100644 opal/mca/btl/usnic/btl_usnic_ack.c create mode 100644 opal/mca/btl/usnic/btl_usnic_ack.h create mode 100644 opal/mca/btl/usnic/btl_usnic_cagent.c create mode 100644 opal/mca/btl/usnic/btl_usnic_cclient.c create mode 100644 opal/mca/btl/usnic/btl_usnic_compat.c create mode 100644 opal/mca/btl/usnic/btl_usnic_compat.h create mode 100644 opal/mca/btl/usnic/btl_usnic_component.c create mode 100644 opal/mca/btl/usnic/btl_usnic_connectivity.h create mode 100644 opal/mca/btl/usnic/btl_usnic_endpoint.c create mode 100644 opal/mca/btl/usnic/btl_usnic_endpoint.h create mode 100644 opal/mca/btl/usnic/btl_usnic_frag.c create mode 100644 opal/mca/btl/usnic/btl_usnic_frag.h create mode 100644 opal/mca/btl/usnic/btl_usnic_graph.c create mode 100644 opal/mca/btl/usnic/btl_usnic_graph.h create mode 100644 opal/mca/btl/usnic/btl_usnic_hwloc.c create mode 100644 opal/mca/btl/usnic/btl_usnic_hwloc.h create mode 100644 opal/mca/btl/usnic/btl_usnic_map.c create mode 100644 opal/mca/btl/usnic/btl_usnic_mca.c create mode 100644 opal/mca/btl/usnic/btl_usnic_module.c create mode 100644 opal/mca/btl/usnic/btl_usnic_module.h create mode 100644 opal/mca/btl/usnic/btl_usnic_proc.c create mode 100644 opal/mca/btl/usnic/btl_usnic_proc.h create mode 100644 opal/mca/btl/usnic/btl_usnic_recv.c create mode 100644 opal/mca/btl/usnic/btl_usnic_recv.h create mode 100644 opal/mca/btl/usnic/btl_usnic_send.c create mode 100644 opal/mca/btl/usnic/btl_usnic_send.h create mode 100644 opal/mca/btl/usnic/btl_usnic_stats.c create mode 100644 opal/mca/btl/usnic/btl_usnic_stats.h create mode 100644 opal/mca/btl/usnic/btl_usnic_test.c create mode 100644 opal/mca/btl/usnic/btl_usnic_test.h create mode 100644 opal/mca/btl/usnic/btl_usnic_util.c create mode 100644 opal/mca/btl/usnic/btl_usnic_util.h create mode 100644 opal/mca/btl/usnic/configure.m4 create mode 100644 opal/mca/btl/usnic/help-mpi-btl-usnic.txt create mode 100644 opal/mca/btl/usnic/owner.txt create mode 100644 opal/mca/btl/usnic/test/btl_usnic_component_test.h create mode 100644 opal/mca/btl/usnic/test/btl_usnic_graph_test.h create mode 100644 opal/mca/btl/usnic/test/usnic_btl_run_tests.c create mode 100644 opal/mca/btl/vader/Makefile.am create mode 100644 opal/mca/btl/vader/btl_vader.h create mode 100644 opal/mca/btl/vader/btl_vader_component.c create mode 100644 opal/mca/btl/vader/btl_vader_endpoint.h create mode 100644 opal/mca/btl/vader/btl_vader_fbox.h create mode 100644 opal/mca/btl/vader/btl_vader_fifo.h create mode 100644 opal/mca/btl/vader/btl_vader_frag.c create mode 100644 opal/mca/btl/vader/btl_vader_frag.h create mode 100644 opal/mca/btl/vader/btl_vader_get.c create mode 100644 opal/mca/btl/vader/btl_vader_knem.c create mode 100644 opal/mca/btl/vader/btl_vader_knem.h create mode 100644 opal/mca/btl/vader/btl_vader_module.c create mode 100644 opal/mca/btl/vader/btl_vader_put.c create mode 100644 opal/mca/btl/vader/btl_vader_send.c create mode 100644 opal/mca/btl/vader/btl_vader_sendi.c create mode 100644 opal/mca/btl/vader/btl_vader_xpmem.c create mode 100644 opal/mca/btl/vader/btl_vader_xpmem.h create mode 100644 opal/mca/btl/vader/configure.m4 create mode 100644 opal/mca/btl/vader/help-btl-vader.txt create mode 100644 opal/mca/btl/vader/owner.txt create mode 100644 opal/mca/common/Makefile.am create mode 100644 opal/mca/common/cuda/Makefile.am create mode 100644 opal/mca/common/cuda/common_cuda.c create mode 100644 opal/mca/common/cuda/common_cuda.h create mode 100644 opal/mca/common/cuda/configure.m4 create mode 100644 opal/mca/common/cuda/help-mpi-common-cuda.txt create mode 100644 opal/mca/common/cuda/owner.txt create mode 100644 opal/mca/common/libfabric/Makefile.am create mode 100644 opal/mca/common/libfabric/common_libfabric.c create mode 100644 opal/mca/common/libfabric/common_libfabric.h create mode 100644 opal/mca/common/libfabric/configure.m4 create mode 100644 opal/mca/common/libfabric/owner.txt create mode 100644 opal/mca/common/sm/Makefile.am create mode 100644 opal/mca/common/sm/common_sm.c create mode 100644 opal/mca/common/sm/common_sm.h create mode 100644 opal/mca/common/sm/common_sm_mpool.c create mode 100644 opal/mca/common/sm/common_sm_mpool.h create mode 100644 opal/mca/common/sm/configure.m4 create mode 100644 opal/mca/common/sm/help-mpi-common-sm.txt create mode 100644 opal/mca/common/sm/owner.txt create mode 100644 opal/mca/common/ugni/Makefile.am create mode 100644 opal/mca/common/ugni/common_ugni.c create mode 100644 opal/mca/common/ugni/common_ugni.h create mode 100644 opal/mca/common/ugni/common_ugni_ep.c create mode 100644 opal/mca/common/ugni/common_ugni_ep.h create mode 100644 opal/mca/common/ugni/configure.m4 create mode 100644 opal/mca/common/ugni/owner.txt create mode 100644 opal/mca/common/verbs/Makefile.am create mode 100644 opal/mca/common/verbs/common_verbs.h create mode 100644 opal/mca/common/verbs/common_verbs_basics.c create mode 100644 opal/mca/common/verbs/common_verbs_devlist.c create mode 100644 opal/mca/common/verbs/common_verbs_find_max_inline.c create mode 100644 opal/mca/common/verbs/common_verbs_find_ports.c create mode 100644 opal/mca/common/verbs/common_verbs_mca.c create mode 100644 opal/mca/common/verbs/common_verbs_port.c create mode 100644 opal/mca/common/verbs/common_verbs_qp_type.c create mode 100644 opal/mca/common/verbs/configure.m4 create mode 100644 opal/mca/common/verbs/help-opal-common-verbs.txt create mode 100644 opal/mca/common/verbs/owner.txt create mode 100644 opal/mca/common/verbs_usnic/Makefile.am create mode 100644 opal/mca/common/verbs_usnic/common_verbs_usnic.h create mode 100644 opal/mca/common/verbs_usnic/common_verbs_usnic_fake.c create mode 100644 opal/mca/common/verbs_usnic/configure.m4 create mode 100644 opal/mca/common/verbs_usnic/owner.txt create mode 100644 opal/mca/compress/Makefile.am create mode 100644 opal/mca/compress/base/Makefile.am create mode 100644 opal/mca/compress/base/base.h create mode 100644 opal/mca/compress/base/compress_base_close.c create mode 100644 opal/mca/compress/base/compress_base_fns.c create mode 100644 opal/mca/compress/base/compress_base_open.c create mode 100644 opal/mca/compress/base/compress_base_select.c create mode 100644 opal/mca/compress/base/owner.txt create mode 100644 opal/mca/compress/bzip/Makefile.am create mode 100644 opal/mca/compress/bzip/compress_bzip.h create mode 100644 opal/mca/compress/bzip/compress_bzip_component.c create mode 100644 opal/mca/compress/bzip/compress_bzip_module.c create mode 100644 opal/mca/compress/bzip/owner.txt create mode 100644 opal/mca/compress/compress.h create mode 100644 opal/mca/compress/gzip/Makefile.am create mode 100644 opal/mca/compress/gzip/compress_gzip.h create mode 100644 opal/mca/compress/gzip/compress_gzip_component.c create mode 100644 opal/mca/compress/gzip/compress_gzip_module.c create mode 100644 opal/mca/compress/gzip/owner.txt create mode 100644 opal/mca/crs/Makefile.am create mode 100644 opal/mca/crs/base/Makefile.am create mode 100644 opal/mca/crs/base/base.h create mode 100644 opal/mca/crs/base/crs_base_close.c create mode 100644 opal/mca/crs/base/crs_base_fns.c create mode 100644 opal/mca/crs/base/crs_base_open.c create mode 100644 opal/mca/crs/base/crs_base_select.c create mode 100644 opal/mca/crs/base/owner.txt create mode 100644 opal/mca/crs/blcr/Makefile.am create mode 100644 opal/mca/crs/blcr/configure.m4 create mode 100644 opal/mca/crs/blcr/crs_blcr.h create mode 100644 opal/mca/crs/blcr/crs_blcr_component.c create mode 100644 opal/mca/crs/blcr/crs_blcr_module.c create mode 100644 opal/mca/crs/blcr/help-opal-crs-blcr.txt create mode 100644 opal/mca/crs/criu/Makefile.am create mode 100644 opal/mca/crs/criu/configure.m4 create mode 100644 opal/mca/crs/criu/crs_criu.h create mode 100644 opal/mca/crs/criu/crs_criu_component.c create mode 100644 opal/mca/crs/criu/crs_criu_module.c create mode 100644 opal/mca/crs/criu/owner.txt create mode 100644 opal/mca/crs/crs.h create mode 100644 opal/mca/crs/dmtcp/Makefile.am create mode 100644 opal/mca/crs/dmtcp/configure.m4 create mode 100644 opal/mca/crs/dmtcp/crs_dmtcp.h create mode 100644 opal/mca/crs/dmtcp/crs_dmtcp_component.c create mode 100644 opal/mca/crs/dmtcp/crs_dmtcp_module.c create mode 100644 opal/mca/crs/dmtcp/owner.txt create mode 100644 opal/mca/crs/none/Makefile.am create mode 100644 opal/mca/crs/none/crs_none.h create mode 100644 opal/mca/crs/none/crs_none_component.c create mode 100644 opal/mca/crs/none/crs_none_module.c create mode 100644 opal/mca/crs/none/help-opal-crs-none.txt create mode 100644 opal/mca/crs/none/owner.txt create mode 100644 opal/mca/crs/opal_crs.7in create mode 100644 opal/mca/crs/self/Makefile.am create mode 100644 opal/mca/crs/self/configure.m4 create mode 100644 opal/mca/crs/self/crs_self.h create mode 100644 opal/mca/crs/self/crs_self_component.c create mode 100644 opal/mca/crs/self/crs_self_module.c create mode 100644 opal/mca/crs/self/help-opal-crs-self.txt create mode 100644 opal/mca/crs/self/owner.txt create mode 100644 opal/mca/dl/Makefile.am create mode 100644 opal/mca/dl/base/Makefile.am create mode 100644 opal/mca/dl/base/base.h create mode 100644 opal/mca/dl/base/dl_base_close.c create mode 100644 opal/mca/dl/base/dl_base_fns.c create mode 100644 opal/mca/dl/base/dl_base_open.c create mode 100644 opal/mca/dl/base/dl_base_select.c create mode 100644 opal/mca/dl/configure.m4 create mode 100644 opal/mca/dl/dl.h create mode 100644 opal/mca/dl/dlopen/Makefile.am create mode 100644 opal/mca/dl/dlopen/configure.m4 create mode 100644 opal/mca/dl/dlopen/dl_dlopen.h create mode 100644 opal/mca/dl/dlopen/dl_dlopen_component.c create mode 100644 opal/mca/dl/dlopen/dl_dlopen_module.c create mode 100644 opal/mca/dl/libltdl/Makefile.am create mode 100644 opal/mca/dl/libltdl/configure.m4 create mode 100644 opal/mca/dl/libltdl/dl_libltdl.h create mode 100644 opal/mca/dl/libltdl/dl_libltdl_component.c create mode 100644 opal/mca/dl/libltdl/dl_libltdl_module.c create mode 100644 opal/mca/event/Makefile.am create mode 100644 opal/mca/event/OMPI_LIBEVENT_README.txt create mode 100644 opal/mca/event/base/Makefile.am create mode 100644 opal/mca/event/base/README.openmpi create mode 100644 opal/mca/event/base/base.h create mode 100644 opal/mca/event/base/event_base_frame.c create mode 100644 opal/mca/event/base/owner.txt create mode 100644 opal/mca/event/configure.m4 create mode 100644 opal/mca/event/event.h create mode 100644 opal/mca/event/external/Makefile.am create mode 100644 opal/mca/event/external/configure.m4 create mode 100644 opal/mca/event/external/event_external_component.c create mode 100644 opal/mca/event/external/event_external_module.c create mode 100644 opal/mca/event/external/external.h create mode 100644 opal/mca/event/external/owner.txt create mode 100644 opal/mca/event/libevent2022/Makefile.am create mode 100644 opal/mca/event/libevent2022/autogen.subdirs create mode 100644 opal/mca/event/libevent2022/configure.m4 create mode 100644 opal/mca/event/libevent2022/libevent/ChangeLog create mode 100644 opal/mca/event/libevent2022/libevent/Doxyfile create mode 100644 opal/mca/event/libevent2022/libevent/LICENSE create mode 100644 opal/mca/event/libevent2022/libevent/Makefile.am create mode 100644 opal/mca/event/libevent2022/libevent/Makefile.nmake create mode 100644 opal/mca/event/libevent2022/libevent/README create mode 100644 opal/mca/event/libevent2022/libevent/WIN32-Code/event2/event-config.h create mode 100644 opal/mca/event/libevent2022/libevent/WIN32-Code/tree.h create mode 100644 opal/mca/event/libevent2022/libevent/arc4random.c create mode 100755 opal/mca/event/libevent2022/libevent/autogen.sh create mode 100644 opal/mca/event/libevent2022/libevent/buffer.c create mode 100644 opal/mca/event/libevent2022/libevent/buffer_iocp.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent_async.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent_filter.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent_openssl.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent_pair.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent_ratelim.c create mode 100644 opal/mca/event/libevent2022/libevent/bufferevent_sock.c create mode 100644 opal/mca/event/libevent2022/libevent/changelist-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/compat/sys/queue.h create mode 100644 opal/mca/event/libevent2022/libevent/configure.ac create mode 100644 opal/mca/event/libevent2022/libevent/defer-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/devpoll.c create mode 100644 opal/mca/event/libevent2022/libevent/epoll.c create mode 100644 opal/mca/event/libevent2022/libevent/epoll_sub.c create mode 100644 opal/mca/event/libevent2022/libevent/evbuffer-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/evdns.c create mode 100644 opal/mca/event/libevent2022/libevent/evdns.h create mode 100644 opal/mca/event/libevent2022/libevent/event-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/event.c create mode 100644 opal/mca/event/libevent2022/libevent/event.h create mode 100644 opal/mca/event/libevent2022/libevent/event_iocp.c create mode 100755 opal/mca/event/libevent2022/libevent/event_rpcgen.py create mode 100644 opal/mca/event/libevent2022/libevent/event_tagging.c create mode 100644 opal/mca/event/libevent2022/libevent/evhttp.h create mode 100644 opal/mca/event/libevent2022/libevent/evmap-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/evmap.c create mode 100644 opal/mca/event/libevent2022/libevent/evport.c create mode 100644 opal/mca/event/libevent2022/libevent/evrpc-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/evrpc.c create mode 100644 opal/mca/event/libevent2022/libevent/evrpc.h create mode 100644 opal/mca/event/libevent2022/libevent/evsignal-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/evthread-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/evthread.c create mode 100644 opal/mca/event/libevent2022/libevent/evthread_pthread.c create mode 100644 opal/mca/event/libevent2022/libevent/evthread_win32.c create mode 100644 opal/mca/event/libevent2022/libevent/evutil.c create mode 100644 opal/mca/event/libevent2022/libevent/evutil.h create mode 100644 opal/mca/event/libevent2022/libevent/evutil_rand.c create mode 100644 opal/mca/event/libevent2022/libevent/ht-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/http-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/http.c create mode 100644 opal/mca/event/libevent2022/libevent/include/Makefile.am create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/buffer.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/buffer_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/bufferevent.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/bufferevent_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/bufferevent_ssl.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/bufferevent_struct.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/dns.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/dns_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/dns_struct.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/event.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/event_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/event_struct.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/http.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/http_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/http_struct.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/keyvalq_struct.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/listener.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/rpc.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/rpc_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/rpc_struct.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/tag.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/tag_compat.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/thread.h create mode 100644 opal/mca/event/libevent2022/libevent/include/event2/util.h create mode 100644 opal/mca/event/libevent2022/libevent/iocp-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/ipv6-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/kqueue.c create mode 100644 opal/mca/event/libevent2022/libevent/libevent.pc.in create mode 100644 opal/mca/event/libevent2022/libevent/libevent_openssl.pc.in create mode 100644 opal/mca/event/libevent2022/libevent/libevent_pthreads.pc.in create mode 100644 opal/mca/event/libevent2022/libevent/listener.c create mode 100644 opal/mca/event/libevent2022/libevent/log-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/log.c create mode 100644 opal/mca/event/libevent2022/libevent/m4/ac_backport_259_ssizet.m4 create mode 100644 opal/mca/event/libevent2022/libevent/m4/acx_pthread.m4 create mode 100644 opal/mca/event/libevent2022/libevent/make-event-config.sed create mode 100644 opal/mca/event/libevent2022/libevent/minheap-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/mm-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/opal_rename.h create mode 100644 opal/mca/event/libevent2022/libevent/poll.c create mode 100644 opal/mca/event/libevent2022/libevent/ratelim-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/sample/Makefile.am create mode 100644 opal/mca/event/libevent2022/libevent/sample/dns-example.c create mode 100644 opal/mca/event/libevent2022/libevent/sample/event-test.c create mode 100644 opal/mca/event/libevent2022/libevent/sample/hello-world.c create mode 100644 opal/mca/event/libevent2022/libevent/sample/http-server.c create mode 100644 opal/mca/event/libevent2022/libevent/sample/le-proxy.c create mode 100644 opal/mca/event/libevent2022/libevent/sample/signal-test.c create mode 100644 opal/mca/event/libevent2022/libevent/sample/time-test.c create mode 100644 opal/mca/event/libevent2022/libevent/select.c create mode 100644 opal/mca/event/libevent2022/libevent/signal.c create mode 100644 opal/mca/event/libevent2022/libevent/strlcpy-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/strlcpy.c create mode 100644 opal/mca/event/libevent2022/libevent/test/Makefile.am create mode 100644 opal/mca/event/libevent2022/libevent/test/Makefile.nmake create mode 100644 opal/mca/event/libevent2022/libevent/test/bench.c create mode 100644 opal/mca/event/libevent2022/libevent/test/bench_cascade.c create mode 100644 opal/mca/event/libevent2022/libevent/test/bench_http.c create mode 100644 opal/mca/event/libevent2022/libevent/test/bench_httpclient.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress.gen.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress.gen.h create mode 100644 opal/mca/event/libevent2022/libevent/test/regress.h create mode 100644 opal/mca/event/libevent2022/libevent/test/regress.rpc create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_buffer.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_bufferevent.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_dns.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_et.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_http.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_iocp.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_listener.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_main.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_minheap.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_rpc.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_ssl.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_testutils.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_testutils.h create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_thread.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_util.c create mode 100644 opal/mca/event/libevent2022/libevent/test/regress_zlib.c create mode 100755 opal/mca/event/libevent2022/libevent/test/rpcgen_wrapper.sh create mode 100644 opal/mca/event/libevent2022/libevent/test/test-changelist.c create mode 100644 opal/mca/event/libevent2022/libevent/test/test-eof.c create mode 100644 opal/mca/event/libevent2022/libevent/test/test-init.c create mode 100644 opal/mca/event/libevent2022/libevent/test/test-ratelim.c create mode 100644 opal/mca/event/libevent2022/libevent/test/test-time.c create mode 100644 opal/mca/event/libevent2022/libevent/test/test-weof.c create mode 100755 opal/mca/event/libevent2022/libevent/test/test.sh create mode 100644 opal/mca/event/libevent2022/libevent/test/tinytest.c create mode 100644 opal/mca/event/libevent2022/libevent/test/tinytest.h create mode 100644 opal/mca/event/libevent2022/libevent/test/tinytest_local.h create mode 100644 opal/mca/event/libevent2022/libevent/test/tinytest_macros.h create mode 100644 opal/mca/event/libevent2022/libevent/util-internal.h create mode 100644 opal/mca/event/libevent2022/libevent/whatsnew-2.0.txt create mode 100644 opal/mca/event/libevent2022/libevent/win32select.c create mode 100644 opal/mca/event/libevent2022/libevent2022.h create mode 100644 opal/mca/event/libevent2022/libevent2022_component.c create mode 100644 opal/mca/event/libevent2022/libevent2022_module.c create mode 100644 opal/mca/event/libevent2022/owner.txt create mode 100644 opal/mca/hwloc/Makefile.am create mode 100644 opal/mca/hwloc/README.txt create mode 100644 opal/mca/hwloc/base/Makefile.am create mode 100644 opal/mca/hwloc/base/base.h create mode 100644 opal/mca/hwloc/base/help-opal-hwloc-base.txt create mode 100644 opal/mca/hwloc/base/hwloc_base_dt.c create mode 100644 opal/mca/hwloc/base/hwloc_base_frame.c create mode 100644 opal/mca/hwloc/base/hwloc_base_maffinity.c create mode 100644 opal/mca/hwloc/base/hwloc_base_proc_mempolicy.c create mode 100644 opal/mca/hwloc/base/hwloc_base_util.c create mode 100644 opal/mca/hwloc/base/owner.txt create mode 100644 opal/mca/hwloc/configure.m4 create mode 100644 opal/mca/hwloc/external/Makefile.am create mode 100644 opal/mca/hwloc/external/configure.m4 create mode 100644 opal/mca/hwloc/external/external.h create mode 100644 opal/mca/hwloc/external/hwloc_external_component.c create mode 100644 opal/mca/hwloc/external/owner.txt create mode 100644 opal/mca/hwloc/hwloc.h create mode 100644 opal/mca/hwloc/hwloc1113/Makefile.am create mode 100644 opal/mca/hwloc/hwloc1113/README-ompi.txt create mode 100644 opal/mca/hwloc/hwloc1113/configure.m4 create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/AUTHORS create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/COPYING create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/Makefile.am create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/NEWS create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/README create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/VERSION create mode 100755 opal/mca/hwloc/hwloc1113/hwloc/config/distscript.sh create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc.m4 create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_check_attributes.m4 create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_check_vendor.m4 create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_check_visibility.m4 create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_components.m4 create mode 100755 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_get_version.sh create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_internal.m4 create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/config/hwloc_pkg.m4 create mode 100755 opal/mca/hwloc/hwloc1113/hwloc/config/test-driver create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/configure.ac create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/contrib/hwloc-valgrind.supp create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/contrib/systemd/README.txt create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/doc/README.txt create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/hwloc.pc.in create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/Makefile.am create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/autogen/config.h.in create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/bitmap.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/cuda.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/cudart.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/deprecated.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/diff.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/gl.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/glibc-sched.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/helper.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/inlines.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/intel-mic.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/linux-libnuma.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/linux.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/myriexpress.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/nvml.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/opencl.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/openfabrics-verbs.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/plugins.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/hwloc/rename.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/autogen/config.h.in create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/components.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/cpuid-x86.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/debug.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/misc.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/private.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/solaris-chiptype.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/include/private/xml.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/Makefile.am create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/base64.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/bind.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/bitmap.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/components.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/diff.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/distances.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/dolib.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/hwloc.dtd create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/misc.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/pci-common.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-aix.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-bgq.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-cuda.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-custom.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-darwin.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-fake.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-freebsd.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-gl.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-hardwired.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-hpux.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-linux.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-netbsd.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-noos.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-nvml.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-opencl.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-osf.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-pci.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-solaris-chiptype.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-solaris.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-synthetic.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-windows.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-x86.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-xml-libxml.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-xml-nolibxml.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology-xml.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/topology.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/src/traversal.c create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/tests/README.txt create mode 100644 opal/mca/hwloc/hwloc1113/hwloc/utils/README.txt create mode 100644 opal/mca/hwloc/hwloc1113/hwloc1113.h create mode 100644 opal/mca/hwloc/hwloc1113/hwloc1113_component.c create mode 100644 opal/mca/hwloc/hwloc1113/owner.txt create mode 100644 opal/mca/if/Makefile.am create mode 100644 opal/mca/if/base/Makefile.am create mode 100644 opal/mca/if/base/base.h create mode 100644 opal/mca/if/base/if_base_components.c create mode 100644 opal/mca/if/base/owner.txt create mode 100644 opal/mca/if/bsdx_ipv4/Makefile.am create mode 100644 opal/mca/if/bsdx_ipv4/configure.m4 create mode 100644 opal/mca/if/bsdx_ipv4/if_bsdx.c create mode 100644 opal/mca/if/bsdx_ipv4/owner.txt create mode 100644 opal/mca/if/bsdx_ipv6/Makefile.am create mode 100644 opal/mca/if/bsdx_ipv6/configure.m4 create mode 100644 opal/mca/if/bsdx_ipv6/if_bsdx_ipv6.c create mode 100644 opal/mca/if/bsdx_ipv6/owner.txt create mode 100644 opal/mca/if/if.h create mode 100644 opal/mca/if/linux_ipv6/Makefile.am create mode 100644 opal/mca/if/linux_ipv6/configure.m4 create mode 100644 opal/mca/if/linux_ipv6/if_linux_ipv6.c create mode 100644 opal/mca/if/linux_ipv6/owner.txt create mode 100644 opal/mca/if/posix_ipv4/Makefile.am create mode 100644 opal/mca/if/posix_ipv4/configure.m4 create mode 100644 opal/mca/if/posix_ipv4/if_posix.c create mode 100644 opal/mca/if/posix_ipv4/owner.txt create mode 100644 opal/mca/if/solaris_ipv6/Makefile.am create mode 100644 opal/mca/if/solaris_ipv6/configure.m4 create mode 100644 opal/mca/if/solaris_ipv6/if_solaris_ipv6.c create mode 100644 opal/mca/if/solaris_ipv6/owner.txt create mode 100644 opal/mca/installdirs/Makefile.am create mode 100644 opal/mca/installdirs/base/Makefile.am create mode 100644 opal/mca/installdirs/base/base.h create mode 100644 opal/mca/installdirs/base/installdirs_base_components.c create mode 100644 opal/mca/installdirs/base/installdirs_base_expand.c create mode 100644 opal/mca/installdirs/base/owner.txt create mode 100644 opal/mca/installdirs/config/Makefile.am create mode 100644 opal/mca/installdirs/config/configure.m4 create mode 100644 opal/mca/installdirs/config/install_dirs.h.in create mode 100644 opal/mca/installdirs/config/opal_installdirs_config.c create mode 100644 opal/mca/installdirs/config/owner.txt create mode 100644 opal/mca/installdirs/configure.m4 create mode 100644 opal/mca/installdirs/env/Makefile.am create mode 100644 opal/mca/installdirs/env/configure.m4 create mode 100644 opal/mca/installdirs/env/opal_installdirs_env.c create mode 100644 opal/mca/installdirs/env/owner.txt create mode 100644 opal/mca/installdirs/installdirs.h create mode 100644 opal/mca/mca.h create mode 100644 opal/mca/memchecker/Makefile.am create mode 100644 opal/mca/memchecker/base/Makefile.am create mode 100644 opal/mca/memchecker/base/base.h create mode 100644 opal/mca/memchecker/base/memchecker_base_open.c create mode 100644 opal/mca/memchecker/base/memchecker_base_select.c create mode 100644 opal/mca/memchecker/base/memchecker_base_wrappers.c create mode 100644 opal/mca/memchecker/base/owner.txt create mode 100644 opal/mca/memchecker/configure.m4 create mode 100644 opal/mca/memchecker/memchecker.h create mode 100644 opal/mca/memchecker/valgrind/Makefile.am create mode 100644 opal/mca/memchecker/valgrind/configure.m4 create mode 100644 opal/mca/memchecker/valgrind/memchecker_valgrind.h create mode 100644 opal/mca/memchecker/valgrind/memchecker_valgrind_component.c create mode 100644 opal/mca/memchecker/valgrind/memchecker_valgrind_module.c create mode 100644 opal/mca/memchecker/valgrind/owner.txt create mode 100644 opal/mca/memcpy/Makefile.am create mode 100644 opal/mca/memcpy/base/Makefile.am create mode 100644 opal/mca/memcpy/base/base.h create mode 100644 opal/mca/memcpy/base/memcpy_base_default.h create mode 100644 opal/mca/memcpy/base/memcpy_base_open.c create mode 100644 opal/mca/memcpy/base/owner.txt create mode 100644 opal/mca/memcpy/configure.m4 create mode 100644 opal/mca/memcpy/memcpy.h create mode 100644 opal/mca/memory/Makefile.am create mode 100644 opal/mca/memory/base/Makefile.am create mode 100644 opal/mca/memory/base/base.h create mode 100644 opal/mca/memory/base/empty.h create mode 100644 opal/mca/memory/base/memory_base_empty.c create mode 100644 opal/mca/memory/base/memory_base_open.c create mode 100644 opal/mca/memory/base/owner.txt create mode 100644 opal/mca/memory/configure.m4 create mode 100644 opal/mca/memory/malloc_solaris/Makefile.am create mode 100644 opal/mca/memory/malloc_solaris/configure.m4 create mode 100644 opal/mca/memory/malloc_solaris/memory_malloc_solaris_component.c create mode 100644 opal/mca/memory/malloc_solaris/owner.txt create mode 100644 opal/mca/memory/memory.h create mode 100644 opal/mca/memory/patcher/Makefile.am create mode 100644 opal/mca/memory/patcher/configure.m4 create mode 100644 opal/mca/memory/patcher/memory_patcher.h create mode 100644 opal/mca/memory/patcher/memory_patcher_component.c create mode 100644 opal/mca/mpool/Makefile.am create mode 100644 opal/mca/mpool/base/Makefile.am create mode 100644 opal/mca/mpool/base/base.h create mode 100644 opal/mca/mpool/base/help-mpool-base.txt create mode 100644 opal/mca/mpool/base/mpool_base_alloc.c create mode 100644 opal/mca/mpool/base/mpool_base_default.c create mode 100644 opal/mca/mpool/base/mpool_base_frame.c create mode 100644 opal/mca/mpool/base/mpool_base_lookup.c create mode 100644 opal/mca/mpool/base/mpool_base_tree.c create mode 100644 opal/mca/mpool/base/mpool_base_tree.h create mode 100644 opal/mca/mpool/base/owner.txt create mode 100644 opal/mca/mpool/hugepage/Makefile.am create mode 100644 opal/mca/mpool/hugepage/mpool_hugepage.h create mode 100644 opal/mca/mpool/hugepage/mpool_hugepage_component.c create mode 100644 opal/mca/mpool/hugepage/mpool_hugepage_module.c create mode 100644 opal/mca/mpool/memkind/Makefile.am create mode 100644 opal/mca/mpool/memkind/configure.m4 create mode 100644 opal/mca/mpool/memkind/mpool_memkind.h create mode 100644 opal/mca/mpool/memkind/mpool_memkind_component.c create mode 100644 opal/mca/mpool/memkind/mpool_memkind_module.c create mode 100644 opal/mca/mpool/mpool.h create mode 100644 opal/mca/patcher/Makefile.am create mode 100644 opal/mca/patcher/base/Makefile.am create mode 100644 opal/mca/patcher/base/base.h create mode 100644 opal/mca/patcher/base/patcher_base_frame.c create mode 100644 opal/mca/patcher/base/patcher_base_patch.c create mode 100644 opal/mca/patcher/linux/Makefile.am create mode 100644 opal/mca/patcher/linux/configure.m4 create mode 100644 opal/mca/patcher/linux/patcher_linux.h create mode 100644 opal/mca/patcher/linux/patcher_linux_component.c create mode 100644 opal/mca/patcher/linux/patcher_linux_module.c create mode 100644 opal/mca/patcher/overwrite/Makefile.am create mode 100644 opal/mca/patcher/overwrite/configure.m4 create mode 100644 opal/mca/patcher/overwrite/patcher_overwrite.h create mode 100644 opal/mca/patcher/overwrite/patcher_overwrite_component.c create mode 100644 opal/mca/patcher/overwrite/patcher_overwrite_module.c create mode 100644 opal/mca/patcher/patcher.h create mode 100644 opal/mca/pmix/Makefile.am create mode 100644 opal/mca/pmix/base/Makefile.am create mode 100644 opal/mca/pmix/base/base.h create mode 100644 opal/mca/pmix/base/help-pmix-base.txt create mode 100644 opal/mca/pmix/base/pmix_base_fns.c create mode 100644 opal/mca/pmix/base/pmix_base_fns.h create mode 100644 opal/mca/pmix/base/pmix_base_frame.c create mode 100644 opal/mca/pmix/base/pmix_base_hash.c create mode 100644 opal/mca/pmix/base/pmix_base_hash.h create mode 100644 opal/mca/pmix/base/pmix_base_select.c create mode 100644 opal/mca/pmix/cray/Makefile.am create mode 100644 opal/mca/pmix/cray/configure.m4 create mode 100644 opal/mca/pmix/cray/help-pmix-cray.txt create mode 100644 opal/mca/pmix/cray/owner.txt create mode 100644 opal/mca/pmix/cray/pmix_cray.c create mode 100644 opal/mca/pmix/cray/pmix_cray.h create mode 100644 opal/mca/pmix/cray/pmix_cray_component.c create mode 100644 opal/mca/pmix/cray/pmix_cray_pmap_parser.c create mode 100644 opal/mca/pmix/cray/pmix_cray_pmap_parser.h create mode 100644 opal/mca/pmix/ext11/Makefile.am create mode 100644 opal/mca/pmix/ext11/configure.m4 create mode 100644 opal/mca/pmix/ext11/pmix_ext.c create mode 100644 opal/mca/pmix/ext11/pmix_ext.h create mode 100644 opal/mca/pmix/ext11/pmix_ext_client.c create mode 100644 opal/mca/pmix/ext11/pmix_ext_component.c create mode 100644 opal/mca/pmix/ext11/pmix_ext_server_north.c create mode 100644 opal/mca/pmix/ext11/pmix_ext_server_south.c create mode 100644 opal/mca/pmix/ext2x/Makefile.am create mode 100644 opal/mca/pmix/ext2x/configure.m4 create mode 100644 opal/mca/pmix/ext2x/pmix_ext2x.c create mode 100644 opal/mca/pmix/ext2x/pmix_ext2x.h create mode 100644 opal/mca/pmix/ext2x/pmix_ext2x_client.c create mode 100644 opal/mca/pmix/ext2x/pmix_ext2x_component.c create mode 100644 opal/mca/pmix/ext2x/pmix_ext2x_server_north.c create mode 100644 opal/mca/pmix/ext2x/pmix_ext2x_server_south.c create mode 100644 opal/mca/pmix/ext3x/Makefile.am create mode 100644 opal/mca/pmix/ext3x/common_sym_whitelist.txt create mode 100644 opal/mca/pmix/ext3x/configure.m4 create mode 100644 opal/mca/pmix/ext3x/pmix3x.c create mode 100644 opal/mca/pmix/ext3x/pmix3x.h create mode 100644 opal/mca/pmix/ext3x/pmix3x_client.c create mode 100644 opal/mca/pmix/ext3x/pmix3x_component.c create mode 100644 opal/mca/pmix/ext3x/pmix3x_server_north.c create mode 100644 opal/mca/pmix/ext3x/pmix3x_server_south.c create mode 100644 opal/mca/pmix/isolated/Makefile.am create mode 100644 opal/mca/pmix/isolated/pmix_isolated.c create mode 100644 opal/mca/pmix/isolated/pmix_isolated.h create mode 100644 opal/mca/pmix/isolated/pmix_isolated_component.c create mode 100644 opal/mca/pmix/pmix.h create mode 100644 opal/mca/pmix/pmix3x/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/autogen.subdirs create mode 100644 opal/mca/pmix/pmix3x/common_sym_whitelist.txt create mode 100644 opal/mca/pmix/pmix3x/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/AUTHORS create mode 100644 opal/mca/pmix/pmix3x/pmix/INSTALL create mode 100644 opal/mca/pmix/pmix3x/pmix/LICENSE create mode 100644 opal/mca/pmix/pmix3x/pmix/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/NEWS create mode 100644 opal/mca/pmix/pmix3x/pmix/README create mode 100644 opal/mca/pmix/pmix3x/pmix/VERSION create mode 100755 opal/mca/pmix/pmix3x/pmix/autogen.pl create mode 100644 opal/mca/pmix/pmix3x/pmix/config/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/config/c_get_alignment.m4 create mode 100755 opal/mca/pmix/pmix3x/pmix/config/distscript.sh create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_attributes.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_broken_qsort.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_compiler_version.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_icc.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_ident.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_os_flavors.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_package.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_vendor.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_check_visibility.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_config_subdir.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_config_subdir_args.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_ensure_contains_optflags.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_functions.m4 create mode 100755 opal/mca/pmix/pmix3x/pmix/config/pmix_get_version.sh create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_load_platform.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_mca.m4 create mode 100755 opal/mca/pmix/pmix3x/pmix/config/pmix_mca_priority_sort.pl create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_search_libs.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_setup_cc.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_setup_hwloc.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/config/pmix_setup_libevent.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/configure.ac create mode 100644 opal/mca/pmix/pmix3x/pmix/contrib/pmix-valgrind.supp create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/client.c create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/dmodex.c create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/dynamic.c create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/fault.c create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/pub.c create mode 100644 opal/mca/pmix/pmix3x/pmix/examples/tool.c create mode 100644 opal/mca/pmix/pmix3x/pmix/include/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmi.h create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmi2.h create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmix.h create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmix_common.h create mode 100755 opal/mca/pmix/pmix3x/pmix/include/pmix_rename.h.in create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmix_server.h create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmix_tool.h create mode 100644 opal/mca/pmix/pmix3x/pmix/include/pmix_version.h.in create mode 100644 opal/mca/pmix/pmix3x/pmix/man/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/man/README create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man3/pmix_abort.3 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man3/pmix_commit.3 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man3/pmix_finalize.3 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man3/pmix_init.3 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man3/pmix_initialized.3 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man3/pmix_put.3 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man7/pmix.7 create mode 100644 opal/mca/pmix/pmix3x/pmix/man/man7/pmix_constants.7 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/buffer_ops.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/copy.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/internal.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/internal_functions.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/open_close.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/pack.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/print.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/types.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/buffer_ops/unpack.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_hash_table.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_hotel.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_list.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_object.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_pointer_array.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_pointer_array.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_ring_buffer.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/class/pmix_value_array.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmi1.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmi2.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_connect.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_fence.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_get.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_ops.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_pub.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/client/pmix_client_spawn.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/common/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/common/pmix_log.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/common/pmix_query.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/common/pmix_strings.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/dstore/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/dstore/pmix_dstore.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/dstore/pmix_dstore.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/dstore/pmix_esh.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/dstore/pmix_esh.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/event/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/event/pmix_event.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_notification.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/event/pmix_event_registration.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/align.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/hash_string.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/pmix_config_bottom.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/pmix_config_top.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/pmix_globals.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/pmix_socket_errno.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/pmix_stdint.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/prefetch.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/include/types.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/base.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/help-mca-base.txt create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/help-mca-var.txt create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_close.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_compare.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_find.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_component_repository.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_close.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_open.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_register.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_components_select.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_framework.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_list.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_open.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_parse_paramfile.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_enum.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_group.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_var_group.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/base/pmix_mca_base_vari.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/mca.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/base.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_close.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_fns.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_open.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/base/pdl_base_select.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdl.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_component.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pdl/pdlopen/pdl_pdlopen_module.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/base.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/base/pif_base_components.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv4/pif_bsdx.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/bsdx_ipv6/pif_bsdx_ipv6.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/linux_ipv6/pif_linux_ipv6.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/pif.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/posix_ipv4/pif_posix.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pif/solaris_ipv6/pif_solaris_ipv6.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/base.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_components.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/base/pinstalldirs_base_expand.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pinstall_dirs.h.in create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pmix_pinstalldirs_config.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/env/pmix_pinstalldirs_env.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/pinstalldirs.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/base.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_fns.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_frame.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/base/psec_base_select.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/configure.m4 create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/munge/psec_munge_component.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/native/psec_native_component.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/mca/psec/psec.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/help-pmix-runtime.txt create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_finalize.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_init.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_params.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_progress_threads.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/runtime/pmix_rte.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/help-pmix-server.txt create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/pmix_server.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_get.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_listener.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_ops.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/server/pmix_server_regex.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/sm/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/sm/pmix_mmap.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/sm/pmix_mmap.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/sm/pmix_sm.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/sm/pmix_sm.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/tool/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/tool/pmix_tool.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/usock/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/usock/usock.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/usock/usock.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/usock/usock_sendrecv.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/Makefile.include create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/argv.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/argv.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/basename.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/basename.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/crc.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/crc.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/error.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/error.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/fd.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/fd.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/getid.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/getid.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/hash.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/hash.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/keyval/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/keyval/keyval_lex.l create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/keyval_parse.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/net.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/net.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/os_path.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/os_path.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/output.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/output.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/path.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/path.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/pif.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/pif.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/pmix_environ.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/printf.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/printf.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/show_help.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/show_help.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/show_help_lex.l create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/strnlen.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/timings.c create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/timings.h create mode 100644 opal/mca/pmix/pmix3x/pmix/src/util/tsd.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/test/README create mode 100644 opal/mca/pmix/pmix3x/pmix/test/cli_stages.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/cli_stages.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/pmi2_client.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/pmi_client.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/pmix_client.c create mode 100755 opal/mca/pmix/pmix3x/pmix/test/pmix_client_otheruser.sh create mode 100644 opal/mca/pmix/pmix3x/pmix/test/pmix_regex.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/pmix_test.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/server_callbacks.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/server_callbacks.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.am create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simpclient.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simpdmodex.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simpdyn.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simpft.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simppub.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simptest.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/simptool.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/simple/test_pmix.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_cd.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_cd.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_common.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_common.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_error.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_error.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_fence.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_fence.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_publish.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_publish.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_resolve_peers.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_resolve_peers.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_spawn.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/test_spawn.h create mode 100644 opal/mca/pmix/pmix3x/pmix/test/utils.c create mode 100644 opal/mca/pmix/pmix3x/pmix/test/utils.h create mode 100644 opal/mca/pmix/pmix3x/pmix3x.c create mode 100644 opal/mca/pmix/pmix3x/pmix3x.h create mode 100644 opal/mca/pmix/pmix3x/pmix3x_client.c create mode 100644 opal/mca/pmix/pmix3x/pmix3x_component.c create mode 100644 opal/mca/pmix/pmix3x/pmix3x_server_north.c create mode 100644 opal/mca/pmix/pmix3x/pmix3x_server_south.c create mode 100644 opal/mca/pmix/pmix_server.h create mode 100644 opal/mca/pmix/pmix_types.h create mode 100644 opal/mca/pmix/s1/Makefile.am create mode 100644 opal/mca/pmix/s1/configure.m4 create mode 100644 opal/mca/pmix/s1/owner.txt create mode 100644 opal/mca/pmix/s1/pmix_s1.c create mode 100644 opal/mca/pmix/s1/pmix_s1.h create mode 100644 opal/mca/pmix/s1/pmix_s1_component.c create mode 100644 opal/mca/pmix/s2/Makefile.am create mode 100644 opal/mca/pmix/s2/configure.m4 create mode 100644 opal/mca/pmix/s2/owner.txt create mode 100644 opal/mca/pmix/s2/pmi2_pmap_parser.c create mode 100644 opal/mca/pmix/s2/pmi2_pmap_parser.h create mode 100644 opal/mca/pmix/s2/pmix_s2.c create mode 100644 opal/mca/pmix/s2/pmix_s2.h create mode 100644 opal/mca/pmix/s2/pmix_s2_component.c create mode 100644 opal/mca/pstat/Makefile.am create mode 100644 opal/mca/pstat/base/Makefile.am create mode 100644 opal/mca/pstat/base/base.h create mode 100644 opal/mca/pstat/base/pstat_base_open.c create mode 100644 opal/mca/pstat/base/pstat_base_select.c create mode 100644 opal/mca/pstat/configure.m4 create mode 100644 opal/mca/pstat/linux/Makefile.am create mode 100644 opal/mca/pstat/linux/configure.m4 create mode 100644 opal/mca/pstat/linux/owner.txt create mode 100644 opal/mca/pstat/linux/pstat_linux.h create mode 100644 opal/mca/pstat/linux/pstat_linux_component.c create mode 100644 opal/mca/pstat/linux/pstat_linux_module.c create mode 100644 opal/mca/pstat/pstat.h create mode 100644 opal/mca/pstat/test/Makefile.am create mode 100644 opal/mca/pstat/test/configure.m4 create mode 100644 opal/mca/pstat/test/owner.txt create mode 100644 opal/mca/pstat/test/pstat_test.c create mode 100644 opal/mca/pstat/test/pstat_test.h create mode 100644 opal/mca/pstat/test/pstat_test_component.c create mode 100644 opal/mca/rcache/Makefile.am create mode 100644 opal/mca/rcache/base/Makefile.am create mode 100644 opal/mca/rcache/base/base.h create mode 100644 opal/mca/rcache/base/help-rcache-base.txt create mode 100644 opal/mca/rcache/base/rcache_base_create.c create mode 100644 opal/mca/rcache/base/rcache_base_frame.c create mode 100644 opal/mca/rcache/base/rcache_base_mem_cb.c create mode 100644 opal/mca/rcache/base/rcache_base_mem_cb.h create mode 100644 opal/mca/rcache/base/rcache_base_vma.c create mode 100644 opal/mca/rcache/base/rcache_base_vma.h create mode 100644 opal/mca/rcache/base/rcache_base_vma_tree.c create mode 100644 opal/mca/rcache/base/rcache_base_vma_tree.h create mode 100644 opal/mca/rcache/gpusm/Makefile.am create mode 100644 opal/mca/rcache/gpusm/configure.m4 create mode 100644 opal/mca/rcache/gpusm/owner.txt create mode 100644 opal/mca/rcache/gpusm/rcache_gpusm.h create mode 100644 opal/mca/rcache/gpusm/rcache_gpusm_component.c create mode 100644 opal/mca/rcache/gpusm/rcache_gpusm_module.c create mode 100644 opal/mca/rcache/grdma/Makefile.am create mode 100644 opal/mca/rcache/grdma/owner.txt create mode 100644 opal/mca/rcache/grdma/rcache_grdma.h create mode 100644 opal/mca/rcache/grdma/rcache_grdma_component.c create mode 100644 opal/mca/rcache/grdma/rcache_grdma_module.c create mode 100644 opal/mca/rcache/rcache.h create mode 100644 opal/mca/rcache/rgpusm/Makefile.am create mode 100644 opal/mca/rcache/rgpusm/configure.m4 create mode 100644 opal/mca/rcache/rgpusm/owner.txt create mode 100644 opal/mca/rcache/rgpusm/rcache_rgpusm.h create mode 100644 opal/mca/rcache/rgpusm/rcache_rgpusm_component.c create mode 100644 opal/mca/rcache/rgpusm/rcache_rgpusm_module.c create mode 100644 opal/mca/rcache/udreg/Makefile.am create mode 100644 opal/mca/rcache/udreg/configure.m4 create mode 100644 opal/mca/rcache/udreg/owner.txt create mode 100644 opal/mca/rcache/udreg/rcache_udreg.h create mode 100644 opal/mca/rcache/udreg/rcache_udreg_component.c create mode 100644 opal/mca/rcache/udreg/rcache_udreg_module.c create mode 100644 opal/mca/reachable/Makefile.am create mode 100644 opal/mca/reachable/base/Makefile.am create mode 100644 opal/mca/reachable/base/base.h create mode 100644 opal/mca/reachable/base/owner.txt create mode 100644 opal/mca/reachable/base/reachable_base_frame.c create mode 100644 opal/mca/reachable/base/reachable_base_select.c create mode 100644 opal/mca/reachable/netlink/Makefile.am create mode 100644 opal/mca/reachable/netlink/configure.m4 create mode 100644 opal/mca/reachable/netlink/libnl1_utils.h create mode 100644 opal/mca/reachable/netlink/libnl3_utils.h create mode 100644 opal/mca/reachable/netlink/libnl_utils.h create mode 100644 opal/mca/reachable/netlink/owner.txt create mode 100644 opal/mca/reachable/netlink/reachable_netlink.h create mode 100644 opal/mca/reachable/netlink/reachable_netlink_component.c create mode 100644 opal/mca/reachable/netlink/reachable_netlink_module.c create mode 100644 opal/mca/reachable/netlink/reachable_netlink_utils_common.c create mode 100644 opal/mca/reachable/reachable.h create mode 100644 opal/mca/reachable/weighted/.opal_ignore create mode 100644 opal/mca/reachable/weighted/Makefile.am create mode 100644 opal/mca/reachable/weighted/owner.txt create mode 100644 opal/mca/reachable/weighted/reachable_weighted.c create mode 100644 opal/mca/reachable/weighted/reachable_weighted.h create mode 100644 opal/mca/reachable/weighted/reachable_weighted_component.c create mode 100644 opal/mca/sec/Makefile.am create mode 100644 opal/mca/sec/base/Makefile.am create mode 100644 opal/mca/sec/base/base.h create mode 100644 opal/mca/sec/base/owner.txt create mode 100644 opal/mca/sec/base/sec_base_frame.c create mode 100644 opal/mca/sec/base/sec_base_select.c create mode 100644 opal/mca/sec/base/sec_base_stubs.c create mode 100644 opal/mca/sec/basic/Makefile.am create mode 100644 opal/mca/sec/basic/owner.txt create mode 100644 opal/mca/sec/basic/sec_basic.c create mode 100644 opal/mca/sec/basic/sec_basic.h create mode 100644 opal/mca/sec/basic/sec_basic_component.c create mode 100644 opal/mca/sec/keystone/Makefile.am create mode 100644 opal/mca/sec/keystone/configure.m4 create mode 100644 opal/mca/sec/keystone/owner.txt create mode 100644 opal/mca/sec/keystone/sec_keystone.c create mode 100644 opal/mca/sec/keystone/sec_keystone.h create mode 100644 opal/mca/sec/keystone/sec_keystone_component.c create mode 100644 opal/mca/sec/munge/Makefile.am create mode 100644 opal/mca/sec/munge/configure.m4 create mode 100644 opal/mca/sec/munge/owner.txt create mode 100644 opal/mca/sec/munge/sec_munge.c create mode 100644 opal/mca/sec/munge/sec_munge.h create mode 100644 opal/mca/sec/munge/sec_munge_component.c create mode 100644 opal/mca/sec/sec.h create mode 100644 opal/mca/shmem/Makefile.am create mode 100644 opal/mca/shmem/base/Makefile.am create mode 100644 opal/mca/shmem/base/base.h create mode 100644 opal/mca/shmem/base/owner.txt create mode 100644 opal/mca/shmem/base/shmem_base_close.c create mode 100644 opal/mca/shmem/base/shmem_base_open.c create mode 100644 opal/mca/shmem/base/shmem_base_select.c create mode 100644 opal/mca/shmem/base/shmem_base_wrappers.c create mode 100644 opal/mca/shmem/mmap/Makefile.am create mode 100644 opal/mca/shmem/mmap/configure.m4 create mode 100644 opal/mca/shmem/mmap/help-opal-shmem-mmap.txt create mode 100644 opal/mca/shmem/mmap/owner.txt create mode 100644 opal/mca/shmem/mmap/shmem_mmap.h create mode 100644 opal/mca/shmem/mmap/shmem_mmap_component.c create mode 100644 opal/mca/shmem/mmap/shmem_mmap_module.c create mode 100644 opal/mca/shmem/posix/Makefile.am create mode 100644 opal/mca/shmem/posix/configure.m4 create mode 100644 opal/mca/shmem/posix/help-opal-shmem-posix.txt create mode 100644 opal/mca/shmem/posix/owner.txt create mode 100644 opal/mca/shmem/posix/shmem_posix.h create mode 100644 opal/mca/shmem/posix/shmem_posix_common_utils.c create mode 100644 opal/mca/shmem/posix/shmem_posix_common_utils.h create mode 100644 opal/mca/shmem/posix/shmem_posix_component.c create mode 100644 opal/mca/shmem/posix/shmem_posix_module.c create mode 100644 opal/mca/shmem/shmem.h create mode 100644 opal/mca/shmem/shmem_types.h create mode 100644 opal/mca/shmem/sysv/Makefile.am create mode 100644 opal/mca/shmem/sysv/configure.m4 create mode 100644 opal/mca/shmem/sysv/help-opal-shmem-sysv.txt create mode 100644 opal/mca/shmem/sysv/owner.txt create mode 100644 opal/mca/shmem/sysv/shmem_sysv.h create mode 100644 opal/mca/shmem/sysv/shmem_sysv_component.c create mode 100644 opal/mca/shmem/sysv/shmem_sysv_module.c create mode 100644 opal/mca/timer/Makefile.am create mode 100644 opal/mca/timer/altix/Makefile.am create mode 100644 opal/mca/timer/altix/configure.m4 create mode 100644 opal/mca/timer/altix/owner.txt create mode 100644 opal/mca/timer/altix/timer_altix.h create mode 100644 opal/mca/timer/altix/timer_altix_component.c create mode 100644 opal/mca/timer/base/Makefile.am create mode 100644 opal/mca/timer/base/base.h create mode 100644 opal/mca/timer/base/owner.txt create mode 100644 opal/mca/timer/base/timer_base_null.h create mode 100644 opal/mca/timer/base/timer_base_open.c create mode 100644 opal/mca/timer/configure.m4 create mode 100644 opal/mca/timer/darwin/Makefile.am create mode 100644 opal/mca/timer/darwin/configure.m4 create mode 100644 opal/mca/timer/darwin/owner.txt create mode 100644 opal/mca/timer/darwin/timer_darwin.h create mode 100644 opal/mca/timer/darwin/timer_darwin_component.c create mode 100644 opal/mca/timer/linux/Makefile.am create mode 100644 opal/mca/timer/linux/configure.m4 create mode 100644 opal/mca/timer/linux/help-opal-timer-linux.txt create mode 100644 opal/mca/timer/linux/owner.txt create mode 100644 opal/mca/timer/linux/timer_linux.h create mode 100644 opal/mca/timer/linux/timer_linux_component.c create mode 100644 opal/mca/timer/solaris/Makefile.am create mode 100644 opal/mca/timer/solaris/configure.m4 create mode 100644 opal/mca/timer/solaris/owner.txt create mode 100644 opal/mca/timer/solaris/timer_solaris.h create mode 100644 opal/mca/timer/solaris/timer_solaris_component.c create mode 100644 opal/mca/timer/timer.h create mode 100644 opal/memoryhooks/Makefile.am create mode 100644 opal/memoryhooks/memory.c create mode 100644 opal/memoryhooks/memory.h create mode 100644 opal/memoryhooks/memory_internal.h create mode 100644 opal/runtime/Makefile.am create mode 100644 opal/runtime/help-opal-runtime.txt create mode 100644 opal/runtime/help-opal_info.txt create mode 100644 opal/runtime/opal.h create mode 100644 opal/runtime/opal_cr.c create mode 100644 opal/runtime/opal_cr.h create mode 100644 opal/runtime/opal_finalize.c create mode 100644 opal/runtime/opal_info_support.c create mode 100644 opal/runtime/opal_info_support.h create mode 100644 opal/runtime/opal_init.c create mode 100644 opal/runtime/opal_params.c create mode 100644 opal/runtime/opal_params.h create mode 100644 opal/runtime/opal_progress.c create mode 100644 opal/runtime/opal_progress.h create mode 100644 opal/runtime/opal_progress_threads.c create mode 100644 opal/runtime/opal_progress_threads.h create mode 100644 opal/threads/Makefile.am create mode 100644 opal/threads/condition.c create mode 100644 opal/threads/condition.h create mode 100644 opal/threads/mutex.c create mode 100644 opal/threads/mutex.h create mode 100644 opal/threads/mutex_unix.h create mode 100644 opal/threads/thread.c create mode 100644 opal/threads/thread_usage.h create mode 100644 opal/threads/threads.h create mode 100644 opal/threads/tsd.h create mode 100644 opal/threads/wait_sync.c create mode 100644 opal/threads/wait_sync.h create mode 100644 opal/tools/Makefile.am create mode 100644 opal/tools/opal-checkpoint/Makefile.am create mode 100644 opal/tools/opal-checkpoint/help-opal-checkpoint.txt create mode 100644 opal/tools/opal-checkpoint/opal-checkpoint.1in create mode 100644 opal/tools/opal-checkpoint/opal-checkpoint.c create mode 100644 opal/tools/opal-restart/Makefile.am create mode 100644 opal/tools/opal-restart/help-opal-restart.txt create mode 100644 opal/tools/opal-restart/opal-restart.1in create mode 100644 opal/tools/opal-restart/opal-restart.c create mode 100644 opal/tools/wrappers/Makefile.am create mode 100644 opal/tools/wrappers/generic_wrapper.1in create mode 100644 opal/tools/wrappers/help-opal-wrapper.txt create mode 100644 opal/tools/wrappers/opal.pc.in create mode 100644 opal/tools/wrappers/opal_wrapper.1in create mode 100644 opal/tools/wrappers/opal_wrapper.c create mode 100644 opal/tools/wrappers/opalc++-wrapper-data.txt.in create mode 100644 opal/tools/wrappers/opalcc-wrapper-data.txt.in create mode 100644 opal/util/Makefile.am create mode 100644 opal/util/alfg.c create mode 100644 opal/util/alfg.h create mode 100644 opal/util/arch.c create mode 100644 opal/util/arch.h create mode 100644 opal/util/argv.c create mode 100644 opal/util/argv.h create mode 100644 opal/util/basename.c create mode 100644 opal/util/basename.h create mode 100644 opal/util/bit_ops.h create mode 100644 opal/util/cmd_line.c create mode 100644 opal/util/cmd_line.h create mode 100644 opal/util/crc.c create mode 100644 opal/util/crc.h create mode 100644 opal/util/daemon_init.c create mode 100644 opal/util/daemon_init.h create mode 100644 opal/util/error.c create mode 100644 opal/util/error.h create mode 100644 opal/util/ethtool.c create mode 100644 opal/util/ethtool.h create mode 100644 opal/util/fd.c create mode 100644 opal/util/fd.h create mode 100644 opal/util/few.c create mode 100644 opal/util/few.h create mode 100644 opal/util/help-opal-util.txt create mode 100644 opal/util/if.c create mode 100644 opal/util/if.h create mode 100644 opal/util/keyval/Makefile.am create mode 100644 opal/util/keyval/keyval_lex.h create mode 100644 opal/util/keyval/keyval_lex.l create mode 100644 opal/util/keyval_parse.c create mode 100644 opal/util/keyval_parse.h create mode 100644 opal/util/malloc.c create mode 100644 opal/util/malloc.h create mode 100644 opal/util/net.c create mode 100644 opal/util/net.h create mode 100644 opal/util/numtostr.c create mode 100644 opal/util/numtostr.h create mode 100644 opal/util/opal_environ.c create mode 100644 opal/util/opal_environ.h create mode 100644 opal/util/opal_getcwd.c create mode 100644 opal/util/opal_getcwd.h create mode 100644 opal/util/opal_pty.c create mode 100644 opal/util/opal_pty.h create mode 100644 opal/util/os_dirpath.c create mode 100644 opal/util/os_dirpath.h create mode 100644 opal/util/os_path.c create mode 100644 opal/util/os_path.h create mode 100644 opal/util/output.c create mode 100644 opal/util/output.h create mode 100644 opal/util/path.c create mode 100644 opal/util/path.h create mode 100644 opal/util/printf.c create mode 100644 opal/util/printf.h create mode 100644 opal/util/proc.c create mode 100644 opal/util/proc.h create mode 100644 opal/util/qsort.c create mode 100644 opal/util/qsort.h create mode 100644 opal/util/show_help.c create mode 100644 opal/util/show_help.h create mode 100644 opal/util/show_help_lex.h create mode 100644 opal/util/show_help_lex.l create mode 100644 opal/util/stacktrace.c create mode 100644 opal/util/stacktrace.h create mode 100644 opal/util/strncpy.c create mode 100644 opal/util/strncpy.h create mode 100644 opal/util/sys_limits.c create mode 100644 opal/util/sys_limits.h create mode 100644 opal/util/timings.c create mode 100644 opal/util/timings.h create mode 100644 opal/util/uri.c create mode 100644 opal/util/uri.h create mode 100644 opal/win32/opal_inet.c create mode 100644 opal/win32/opal_inet.h create mode 100644 opal/win32/opal_misc.h create mode 100644 opal/win32/opal_process.c create mode 100644 opal/win32/opal_process.h create mode 100644 opal/win32/opal_socket.c create mode 100644 opal/win32/opal_socket.h create mode 100644 opal/win32/opal_time.c create mode 100644 opal/win32/opal_time.h create mode 100644 opal/win32/opal_uio.c create mode 100644 opal/win32/opal_uio.h create mode 100644 opal/win32/opal_util.h create mode 100644 opal/win32/opal_utsname.c create mode 100644 opal/win32/opal_utsname.h create mode 100644 opal/win32/win_compat.h create mode 100644 opal/win_makefile create mode 100644 orte/Doxyfile create mode 100644 orte/Makefile.am create mode 100644 orte/bindings/README create mode 100644 orte/bindings/python/README create mode 100755 orte/bindings/python/examples/submit.py create mode 100644 orte/bindings/python/setup.py create mode 100644 orte/bindings/python/src/orte-cffi/build.py create mode 100644 orte/common_sym_whitelist.txt create mode 100644 orte/etc/Makefile.am create mode 100644 orte/etc/openmpi-default-hostfile create mode 100644 orte/include/Makefile.am create mode 100644 orte/include/orte/Makefile.am create mode 100644 orte/include/orte/constants.h create mode 100644 orte/include/orte/types.h create mode 100644 orte/include/orte/version.h.in create mode 100644 orte/include/orte_config.h create mode 100644 orte/mca/Makefile.am create mode 100644 orte/mca/common/Makefile.am create mode 100644 orte/mca/common/alps/Makefile.am create mode 100644 orte/mca/common/alps/common_alps.c create mode 100644 orte/mca/common/alps/common_alps.h create mode 100644 orte/mca/common/alps/configure.m4 create mode 100644 orte/mca/common/alps/owner.txt create mode 100644 orte/mca/dfs/Makefile.am create mode 100644 orte/mca/dfs/app/Makefile.am create mode 100644 orte/mca/dfs/app/dfs_app.c create mode 100644 orte/mca/dfs/app/dfs_app.h create mode 100644 orte/mca/dfs/app/dfs_app_component.c create mode 100644 orte/mca/dfs/app/owner.txt create mode 100644 orte/mca/dfs/base/Makefile.am create mode 100644 orte/mca/dfs/base/base.h create mode 100644 orte/mca/dfs/base/dfs_base_frame.c create mode 100644 orte/mca/dfs/base/dfs_base_select.c create mode 100644 orte/mca/dfs/base/owner.txt create mode 100644 orte/mca/dfs/dfs.h create mode 100644 orte/mca/dfs/dfs_types.h create mode 100644 orte/mca/dfs/orted/Makefile.am create mode 100644 orte/mca/dfs/orted/dfs_orted.c create mode 100644 orte/mca/dfs/orted/dfs_orted.h create mode 100644 orte/mca/dfs/orted/dfs_orted_component.c create mode 100644 orte/mca/dfs/orted/owner.txt create mode 100644 orte/mca/dfs/test/Makefile.am create mode 100644 orte/mca/dfs/test/dfs_test.c create mode 100644 orte/mca/dfs/test/dfs_test.h create mode 100644 orte/mca/dfs/test/dfs_test_component.c create mode 100644 orte/mca/errmgr/Makefile.am create mode 100644 orte/mca/errmgr/base/Makefile.am create mode 100644 orte/mca/errmgr/base/base.h create mode 100644 orte/mca/errmgr/base/errmgr_base_fns.c create mode 100644 orte/mca/errmgr/base/errmgr_base_frame.c create mode 100644 orte/mca/errmgr/base/errmgr_base_select.c create mode 100644 orte/mca/errmgr/base/errmgr_base_tool.c create mode 100644 orte/mca/errmgr/base/errmgr_private.h create mode 100644 orte/mca/errmgr/base/help-errmgr-base.txt create mode 100644 orte/mca/errmgr/base/owner.txt create mode 100644 orte/mca/errmgr/default_app/Makefile.am create mode 100644 orte/mca/errmgr/default_app/errmgr_default_app.c create mode 100644 orte/mca/errmgr/default_app/errmgr_default_app.h create mode 100644 orte/mca/errmgr/default_app/errmgr_default_app_component.c create mode 100644 orte/mca/errmgr/default_app/owner.txt create mode 100644 orte/mca/errmgr/default_hnp/Makefile.am create mode 100644 orte/mca/errmgr/default_hnp/errmgr_default_hnp.c create mode 100644 orte/mca/errmgr/default_hnp/errmgr_default_hnp.h create mode 100644 orte/mca/errmgr/default_hnp/errmgr_default_hnp_component.c create mode 100644 orte/mca/errmgr/default_hnp/owner.txt create mode 100644 orte/mca/errmgr/default_orted/Makefile.am create mode 100644 orte/mca/errmgr/default_orted/errmgr_default_orted.c create mode 100644 orte/mca/errmgr/default_orted/errmgr_default_orted.h create mode 100644 orte/mca/errmgr/default_orted/errmgr_default_orted_component.c create mode 100644 orte/mca/errmgr/default_orted/owner.txt create mode 100644 orte/mca/errmgr/default_tool/Makefile.am create mode 100644 orte/mca/errmgr/default_tool/errmgr_default_tool.c create mode 100644 orte/mca/errmgr/default_tool/errmgr_default_tool.h create mode 100644 orte/mca/errmgr/default_tool/errmgr_default_tool_component.c create mode 100644 orte/mca/errmgr/default_tool/owner.txt create mode 100644 orte/mca/errmgr/dvm/Makefile.am create mode 100644 orte/mca/errmgr/dvm/errmgr_dvm.c create mode 100644 orte/mca/errmgr/dvm/errmgr_dvm.h create mode 100644 orte/mca/errmgr/dvm/errmgr_dvm_component.c create mode 100644 orte/mca/errmgr/dvm/owner.txt create mode 100644 orte/mca/errmgr/errmgr.h create mode 100644 orte/mca/ess/Makefile.am create mode 100644 orte/mca/ess/alps/Makefile.am create mode 100644 orte/mca/ess/alps/configure.m4 create mode 100644 orte/mca/ess/alps/ess_alps.h create mode 100644 orte/mca/ess/alps/ess_alps_component.c create mode 100644 orte/mca/ess/alps/ess_alps_module.c create mode 100644 orte/mca/ess/alps/ess_alps_utils.c create mode 100644 orte/mca/ess/alps/owner.txt create mode 100644 orte/mca/ess/base/Makefile.am create mode 100644 orte/mca/ess/base/base.h create mode 100644 orte/mca/ess/base/ess_base_fns.c create mode 100644 orte/mca/ess/base/ess_base_frame.c create mode 100644 orte/mca/ess/base/ess_base_get.c create mode 100644 orte/mca/ess/base/ess_base_select.c create mode 100644 orte/mca/ess/base/ess_base_std_app.c create mode 100644 orte/mca/ess/base/ess_base_std_orted.c create mode 100644 orte/mca/ess/base/ess_base_std_prolog.c create mode 100644 orte/mca/ess/base/ess_base_std_tool.c create mode 100644 orte/mca/ess/base/help-ess-base.txt create mode 100644 orte/mca/ess/base/owner.txt create mode 100644 orte/mca/ess/env/Makefile.am create mode 100644 orte/mca/ess/env/ess_env.h create mode 100644 orte/mca/ess/env/ess_env_component.c create mode 100644 orte/mca/ess/env/ess_env_module.c create mode 100644 orte/mca/ess/env/owner.txt create mode 100644 orte/mca/ess/ess.h create mode 100644 orte/mca/ess/hnp/Makefile.am create mode 100644 orte/mca/ess/hnp/ess_hnp.h create mode 100644 orte/mca/ess/hnp/ess_hnp_component.c create mode 100644 orte/mca/ess/hnp/ess_hnp_module.c create mode 100644 orte/mca/ess/hnp/owner.txt create mode 100644 orte/mca/ess/lsf/Makefile.am create mode 100644 orte/mca/ess/lsf/configure.m4 create mode 100644 orte/mca/ess/lsf/ess_lsf.h create mode 100644 orte/mca/ess/lsf/ess_lsf_component.c create mode 100644 orte/mca/ess/lsf/ess_lsf_module.c create mode 100644 orte/mca/ess/lsf/owner.txt create mode 100644 orte/mca/ess/pmi/Makefile.am create mode 100644 orte/mca/ess/pmi/ess_pmi.h create mode 100644 orte/mca/ess/pmi/ess_pmi_component.c create mode 100644 orte/mca/ess/pmi/ess_pmi_module.c create mode 100644 orte/mca/ess/pmi/owner.txt create mode 100644 orte/mca/ess/singleton/Makefile.am create mode 100644 orte/mca/ess/singleton/ess_singleton.h create mode 100644 orte/mca/ess/singleton/ess_singleton_component.c create mode 100644 orte/mca/ess/singleton/ess_singleton_module.c create mode 100644 orte/mca/ess/singleton/owner.txt create mode 100644 orte/mca/ess/slurm/Makefile.am create mode 100644 orte/mca/ess/slurm/configure.m4 create mode 100644 orte/mca/ess/slurm/ess_slurm.h create mode 100644 orte/mca/ess/slurm/ess_slurm_component.c create mode 100644 orte/mca/ess/slurm/ess_slurm_module.c create mode 100644 orte/mca/ess/slurm/owner.txt create mode 100644 orte/mca/ess/tm/Makefile.am create mode 100644 orte/mca/ess/tm/configure.m4 create mode 100644 orte/mca/ess/tm/ess_tm.h create mode 100644 orte/mca/ess/tm/ess_tm_component.c create mode 100644 orte/mca/ess/tm/ess_tm_module.c create mode 100644 orte/mca/ess/tm/owner.txt create mode 100644 orte/mca/ess/tool/Makefile.am create mode 100644 orte/mca/ess/tool/ess_tool.h create mode 100644 orte/mca/ess/tool/ess_tool_component.c create mode 100644 orte/mca/ess/tool/ess_tool_module.c create mode 100644 orte/mca/ess/tool/owner.txt create mode 100644 orte/mca/filem/Makefile.am create mode 100644 orte/mca/filem/base/Makefile.am create mode 100644 orte/mca/filem/base/base.h create mode 100644 orte/mca/filem/base/filem_base_fns.c create mode 100644 orte/mca/filem/base/filem_base_frame.c create mode 100644 orte/mca/filem/base/filem_base_receive.c create mode 100644 orte/mca/filem/base/filem_base_select.c create mode 100644 orte/mca/filem/base/owner.txt create mode 100644 orte/mca/filem/filem.h create mode 100644 orte/mca/filem/orte_filem.7in create mode 100644 orte/mca/filem/raw/Makefile.am create mode 100644 orte/mca/filem/raw/filem_raw.h create mode 100644 orte/mca/filem/raw/filem_raw_component.c create mode 100644 orte/mca/filem/raw/filem_raw_module.c create mode 100644 orte/mca/filem/raw/help-orte-filem-raw.txt create mode 100644 orte/mca/filem/raw/owner.txt create mode 100644 orte/mca/grpcomm/Makefile.am create mode 100644 orte/mca/grpcomm/base/Makefile.am create mode 100644 orte/mca/grpcomm/base/base.h create mode 100644 orte/mca/grpcomm/base/grpcomm_base_frame.c create mode 100644 orte/mca/grpcomm/base/grpcomm_base_select.c create mode 100644 orte/mca/grpcomm/base/grpcomm_base_stubs.c create mode 100644 orte/mca/grpcomm/base/owner.txt create mode 100644 orte/mca/grpcomm/brucks/.opal_ignore create mode 100644 orte/mca/grpcomm/brucks/Makefile.am create mode 100644 orte/mca/grpcomm/brucks/grpcomm_brucks.h create mode 100644 orte/mca/grpcomm/brucks/grpcomm_brucks_component.c create mode 100644 orte/mca/grpcomm/brucks/grpcomm_brucks_module.c create mode 100644 orte/mca/grpcomm/brucks/owner.txt create mode 100644 orte/mca/grpcomm/direct/Makefile.am create mode 100644 orte/mca/grpcomm/direct/grpcomm_direct.c create mode 100644 orte/mca/grpcomm/direct/grpcomm_direct.h create mode 100644 orte/mca/grpcomm/direct/grpcomm_direct_component.c create mode 100644 orte/mca/grpcomm/direct/owner.txt create mode 100644 orte/mca/grpcomm/grpcomm.h create mode 100644 orte/mca/grpcomm/rcd/.opal_ignore create mode 100644 orte/mca/grpcomm/rcd/Makefile.am create mode 100644 orte/mca/grpcomm/rcd/grpcomm_rcd.c create mode 100644 orte/mca/grpcomm/rcd/grpcomm_rcd.h create mode 100644 orte/mca/grpcomm/rcd/grpcomm_rcd_component.c create mode 100644 orte/mca/grpcomm/rcd/owner.txt create mode 100644 orte/mca/iof/Makefile.am create mode 100644 orte/mca/iof/README.txt create mode 100644 orte/mca/iof/base/Makefile.am create mode 100644 orte/mca/iof/base/base.h create mode 100644 orte/mca/iof/base/iof_base_frame.c create mode 100644 orte/mca/iof/base/iof_base_output.c create mode 100644 orte/mca/iof/base/iof_base_select.c create mode 100644 orte/mca/iof/base/iof_base_setup.c create mode 100644 orte/mca/iof/base/iof_base_setup.h create mode 100644 orte/mca/iof/base/owner.txt create mode 100644 orte/mca/iof/hnp/Makefile.am create mode 100644 orte/mca/iof/hnp/iof_hnp.c create mode 100644 orte/mca/iof/hnp/iof_hnp.h create mode 100644 orte/mca/iof/hnp/iof_hnp_component.c create mode 100644 orte/mca/iof/hnp/iof_hnp_read.c create mode 100644 orte/mca/iof/hnp/iof_hnp_receive.c create mode 100644 orte/mca/iof/hnp/iof_hnp_send.c create mode 100644 orte/mca/iof/hnp/owner.txt create mode 100644 orte/mca/iof/iof.h create mode 100644 orte/mca/iof/iof_types.h create mode 100644 orte/mca/iof/orted/Makefile.am create mode 100644 orte/mca/iof/orted/iof_orted.c create mode 100644 orte/mca/iof/orted/iof_orted.h create mode 100644 orte/mca/iof/orted/iof_orted_component.c create mode 100644 orte/mca/iof/orted/iof_orted_read.c create mode 100644 orte/mca/iof/orted/iof_orted_receive.c create mode 100644 orte/mca/iof/orted/owner.txt create mode 100644 orte/mca/iof/tool/Makefile.am create mode 100644 orte/mca/iof/tool/iof_tool.c create mode 100644 orte/mca/iof/tool/iof_tool.h create mode 100644 orte/mca/iof/tool/iof_tool_component.c create mode 100644 orte/mca/iof/tool/iof_tool_receive.c create mode 100644 orte/mca/iof/tool/owner.txt create mode 100644 orte/mca/mca.h create mode 100644 orte/mca/notifier/Makefile.am create mode 100644 orte/mca/notifier/base/Makefile.am create mode 100644 orte/mca/notifier/base/base.h create mode 100644 orte/mca/notifier/base/notifier_base_fns.c create mode 100644 orte/mca/notifier/base/notifier_base_frame.c create mode 100644 orte/mca/notifier/base/notifier_base_select.c create mode 100644 orte/mca/notifier/notifier.h create mode 100644 orte/mca/notifier/smtp/.opal_ignore create mode 100644 orte/mca/notifier/smtp/Makefile.am create mode 100644 orte/mca/notifier/smtp/configure.m4 create mode 100644 orte/mca/notifier/smtp/help-orte-notifier-smtp.txt create mode 100644 orte/mca/notifier/smtp/notifier_smtp.h create mode 100644 orte/mca/notifier/smtp/notifier_smtp_component.c create mode 100644 orte/mca/notifier/smtp/notifier_smtp_module.c create mode 100644 orte/mca/notifier/syslog/Makefile.am create mode 100644 orte/mca/notifier/syslog/notifier_syslog.h create mode 100644 orte/mca/notifier/syslog/notifier_syslog_component.c create mode 100644 orte/mca/notifier/syslog/notifier_syslog_module.c create mode 100644 orte/mca/odls/Makefile.am create mode 100644 orte/mca/odls/alps/Makefile.am create mode 100644 orte/mca/odls/alps/configure.m4 create mode 100644 orte/mca/odls/alps/help-orte-odls-alps.txt create mode 100644 orte/mca/odls/alps/odls_alps.h create mode 100644 orte/mca/odls/alps/odls_alps_component.c create mode 100644 orte/mca/odls/alps/odls_alps_module.c create mode 100644 orte/mca/odls/alps/odls_alps_utils.c create mode 100644 orte/mca/odls/alps/owner.txt create mode 100644 orte/mca/odls/base/Makefile.am create mode 100644 orte/mca/odls/base/base.h create mode 100644 orte/mca/odls/base/help-orte-odls-base.txt create mode 100644 orte/mca/odls/base/odls_base_default_fns.c create mode 100644 orte/mca/odls/base/odls_base_frame.c create mode 100644 orte/mca/odls/base/odls_base_select.c create mode 100644 orte/mca/odls/base/odls_private.h create mode 100644 orte/mca/odls/base/owner.txt create mode 100644 orte/mca/odls/default/Makefile.am create mode 100644 orte/mca/odls/default/configure.m4 create mode 100644 orte/mca/odls/default/help-orte-odls-default.txt create mode 100644 orte/mca/odls/default/odls_default.h create mode 100644 orte/mca/odls/default/odls_default_component.c create mode 100644 orte/mca/odls/default/odls_default_module.c create mode 100644 orte/mca/odls/default/owner.txt create mode 100644 orte/mca/odls/odls.h create mode 100644 orte/mca/odls/odls_types.h create mode 100644 orte/mca/oob/Makefile.am create mode 100644 orte/mca/oob/alps/Makefile.am create mode 100644 orte/mca/oob/alps/configure.m4 create mode 100644 orte/mca/oob/alps/oob_alps_component.c create mode 100644 orte/mca/oob/alps/owner.txt create mode 100644 orte/mca/oob/base/Makefile.am create mode 100644 orte/mca/oob/base/base.h create mode 100644 orte/mca/oob/base/help-oob-base.txt create mode 100644 orte/mca/oob/base/oob_base_frame.c create mode 100644 orte/mca/oob/base/oob_base_select.c create mode 100644 orte/mca/oob/base/oob_base_stubs.c create mode 100644 orte/mca/oob/base/owner.txt create mode 100644 orte/mca/oob/oob.h create mode 100644 orte/mca/oob/tcp/Makefile.am create mode 100644 orte/mca/oob/tcp/configure.m4 create mode 100644 orte/mca/oob/tcp/help-oob-tcp.txt create mode 100644 orte/mca/oob/tcp/oob_tcp.c create mode 100644 orte/mca/oob/tcp/oob_tcp.h create mode 100644 orte/mca/oob/tcp/oob_tcp_common.c create mode 100644 orte/mca/oob/tcp/oob_tcp_common.h create mode 100644 orte/mca/oob/tcp/oob_tcp_component.c create mode 100644 orte/mca/oob/tcp/oob_tcp_component.h create mode 100644 orte/mca/oob/tcp/oob_tcp_connection.c create mode 100644 orte/mca/oob/tcp/oob_tcp_connection.h create mode 100644 orte/mca/oob/tcp/oob_tcp_hdr.h create mode 100644 orte/mca/oob/tcp/oob_tcp_listener.c create mode 100644 orte/mca/oob/tcp/oob_tcp_listener.h create mode 100644 orte/mca/oob/tcp/oob_tcp_peer.h create mode 100644 orte/mca/oob/tcp/oob_tcp_ping.h create mode 100644 orte/mca/oob/tcp/oob_tcp_sendrecv.c create mode 100644 orte/mca/oob/tcp/oob_tcp_sendrecv.h create mode 100644 orte/mca/oob/tcp/owner.txt create mode 100644 orte/mca/oob/ud/Makefile.am create mode 100644 orte/mca/oob/ud/configure.m4 create mode 100644 orte/mca/oob/ud/help-oob-ud.txt create mode 100644 orte/mca/oob/ud/oob_ud.c create mode 100644 orte/mca/oob/ud/oob_ud.h create mode 100644 orte/mca/oob/ud/oob_ud_component.c create mode 100644 orte/mca/oob/ud/oob_ud_component.h create mode 100644 orte/mca/oob/ud/oob_ud_event.c create mode 100644 orte/mca/oob/ud/oob_ud_peer.c create mode 100644 orte/mca/oob/ud/oob_ud_peer.h create mode 100644 orte/mca/oob/ud/oob_ud_ping.c create mode 100644 orte/mca/oob/ud/oob_ud_ping.h create mode 100644 orte/mca/oob/ud/oob_ud_qp.c create mode 100644 orte/mca/oob/ud/oob_ud_qp.h create mode 100644 orte/mca/oob/ud/oob_ud_recv.c create mode 100644 orte/mca/oob/ud/oob_ud_req.c create mode 100644 orte/mca/oob/ud/oob_ud_req.h create mode 100644 orte/mca/oob/ud/oob_ud_send.c create mode 100644 orte/mca/oob/ud/oob_ud_send.h create mode 100644 orte/mca/oob/ud/owner.txt create mode 100644 orte/mca/plm/Makefile.am create mode 100644 orte/mca/plm/alps/Makefile.am create mode 100644 orte/mca/plm/alps/configure.m4 create mode 100644 orte/mca/plm/alps/help-plm-alps.txt create mode 100644 orte/mca/plm/alps/owner.txt create mode 100644 orte/mca/plm/alps/plm_alps.h create mode 100644 orte/mca/plm/alps/plm_alps_component.c create mode 100644 orte/mca/plm/alps/plm_alps_module.c create mode 100644 orte/mca/plm/base/Makefile.am create mode 100644 orte/mca/plm/base/base.h create mode 100644 orte/mca/plm/base/help-plm-base.txt create mode 100644 orte/mca/plm/base/owner.txt create mode 100644 orte/mca/plm/base/plm_base_frame.c create mode 100644 orte/mca/plm/base/plm_base_jobid.c create mode 100644 orte/mca/plm/base/plm_base_launch_support.c create mode 100644 orte/mca/plm/base/plm_base_orted_cmds.c create mode 100644 orte/mca/plm/base/plm_base_receive.c create mode 100644 orte/mca/plm/base/plm_base_select.c create mode 100644 orte/mca/plm/base/plm_private.h create mode 100644 orte/mca/plm/isolated/Makefile.am create mode 100644 orte/mca/plm/isolated/configure.m4 create mode 100644 orte/mca/plm/isolated/owner.txt create mode 100644 orte/mca/plm/isolated/plm_isolated.c create mode 100644 orte/mca/plm/isolated/plm_isolated.h create mode 100644 orte/mca/plm/isolated/plm_isolated_component.c create mode 100644 orte/mca/plm/lsf/Makefile.am create mode 100644 orte/mca/plm/lsf/configure.m4 create mode 100644 orte/mca/plm/lsf/help-plm-lsf.txt create mode 100644 orte/mca/plm/lsf/owner.txt create mode 100644 orte/mca/plm/lsf/plm_lsf.h create mode 100644 orte/mca/plm/lsf/plm_lsf_component.c create mode 100644 orte/mca/plm/lsf/plm_lsf_module.c create mode 100644 orte/mca/plm/plm.h create mode 100644 orte/mca/plm/plm_types.h create mode 100644 orte/mca/plm/rsh/Makefile.am create mode 100644 orte/mca/plm/rsh/configure.m4 create mode 100644 orte/mca/plm/rsh/help-plm-rsh.txt create mode 100644 orte/mca/plm/rsh/owner.txt create mode 100644 orte/mca/plm/rsh/plm_rsh.h create mode 100644 orte/mca/plm/rsh/plm_rsh_component.c create mode 100644 orte/mca/plm/rsh/plm_rsh_module.c create mode 100644 orte/mca/plm/slurm/Makefile.am create mode 100644 orte/mca/plm/slurm/configure.m4 create mode 100644 orte/mca/plm/slurm/help-plm-slurm.txt create mode 100644 orte/mca/plm/slurm/owner.txt create mode 100644 orte/mca/plm/slurm/plm_slurm.h create mode 100644 orte/mca/plm/slurm/plm_slurm_component.c create mode 100644 orte/mca/plm/slurm/plm_slurm_module.c create mode 100644 orte/mca/plm/tm/Makefile.am create mode 100644 orte/mca/plm/tm/configure.m4 create mode 100644 orte/mca/plm/tm/help-plm-tm.txt create mode 100644 orte/mca/plm/tm/owner.txt create mode 100644 orte/mca/plm/tm/plm_tm.h create mode 100644 orte/mca/plm/tm/plm_tm_component.c create mode 100644 orte/mca/plm/tm/plm_tm_module.c create mode 100644 orte/mca/ras/Makefile.am create mode 100644 orte/mca/ras/alps/Makefile.am create mode 100644 orte/mca/ras/alps/configure.m4 create mode 100644 orte/mca/ras/alps/help-ras-alps.txt create mode 100644 orte/mca/ras/alps/owner.txt create mode 100755 orte/mca/ras/alps/ras-alps-command.sh create mode 100644 orte/mca/ras/alps/ras_alps.h create mode 100644 orte/mca/ras/alps/ras_alps_component.c create mode 100644 orte/mca/ras/alps/ras_alps_module.c create mode 100644 orte/mca/ras/base/Makefile.am create mode 100644 orte/mca/ras/base/base.h create mode 100644 orte/mca/ras/base/help-ras-base.txt create mode 100644 orte/mca/ras/base/owner.txt create mode 100644 orte/mca/ras/base/ras_base_allocate.c create mode 100644 orte/mca/ras/base/ras_base_close.c create mode 100644 orte/mca/ras/base/ras_base_frame.c create mode 100644 orte/mca/ras/base/ras_base_node.c create mode 100644 orte/mca/ras/base/ras_base_select.c create mode 100644 orte/mca/ras/base/ras_private.h create mode 100644 orte/mca/ras/gridengine/Makefile.am create mode 100644 orte/mca/ras/gridengine/configure.m4 create mode 100644 orte/mca/ras/gridengine/help-ras-gridengine.txt create mode 100644 orte/mca/ras/gridengine/owner.txt create mode 100644 orte/mca/ras/gridengine/ras_gridengine.h create mode 100644 orte/mca/ras/gridengine/ras_gridengine_component.c create mode 100644 orte/mca/ras/gridengine/ras_gridengine_module.c create mode 100644 orte/mca/ras/loadleveler/Makefile.am create mode 100644 orte/mca/ras/loadleveler/configure.m4 create mode 100644 orte/mca/ras/loadleveler/owner.txt create mode 100644 orte/mca/ras/loadleveler/ras_loadleveler.h create mode 100644 orte/mca/ras/loadleveler/ras_loadleveler_component.c create mode 100644 orte/mca/ras/loadleveler/ras_loadleveler_module.c create mode 100644 orte/mca/ras/lsf/Makefile.am create mode 100644 orte/mca/ras/lsf/configure.m4 create mode 100644 orte/mca/ras/lsf/help-ras-lsf.txt create mode 100644 orte/mca/ras/lsf/owner.txt create mode 100644 orte/mca/ras/lsf/ras_lsf.h create mode 100644 orte/mca/ras/lsf/ras_lsf_component.c create mode 100644 orte/mca/ras/lsf/ras_lsf_module.c create mode 100644 orte/mca/ras/ras.h create mode 100644 orte/mca/ras/simulator/Makefile.am create mode 100644 orte/mca/ras/simulator/help-ras-simulator.txt create mode 100644 orte/mca/ras/simulator/owner.txt create mode 100644 orte/mca/ras/simulator/ras_sim.h create mode 100644 orte/mca/ras/simulator/ras_sim_component.c create mode 100644 orte/mca/ras/simulator/ras_sim_module.c create mode 100644 orte/mca/ras/slurm/Makefile.am create mode 100644 orte/mca/ras/slurm/configure.m4 create mode 100644 orte/mca/ras/slurm/help-ras-slurm.txt create mode 100644 orte/mca/ras/slurm/owner.txt create mode 100644 orte/mca/ras/slurm/ras_slurm.h create mode 100644 orte/mca/ras/slurm/ras_slurm_component.c create mode 100644 orte/mca/ras/slurm/ras_slurm_module.c create mode 100644 orte/mca/ras/tm/Makefile.am create mode 100644 orte/mca/ras/tm/configure.m4 create mode 100644 orte/mca/ras/tm/help-ras-tm.txt create mode 100644 orte/mca/ras/tm/owner.txt create mode 100644 orte/mca/ras/tm/ras_tm.h create mode 100644 orte/mca/ras/tm/ras_tm_component.c create mode 100644 orte/mca/ras/tm/ras_tm_module.c create mode 100644 orte/mca/rmaps/Makefile.am create mode 100644 orte/mca/rmaps/base/Makefile.am create mode 100644 orte/mca/rmaps/base/base.h create mode 100644 orte/mca/rmaps/base/help-orte-rmaps-base.txt create mode 100644 orte/mca/rmaps/base/owner.txt create mode 100644 orte/mca/rmaps/base/rmaps_base_binding.c create mode 100644 orte/mca/rmaps/base/rmaps_base_frame.c create mode 100644 orte/mca/rmaps/base/rmaps_base_map_job.c create mode 100644 orte/mca/rmaps/base/rmaps_base_print_fns.c create mode 100644 orte/mca/rmaps/base/rmaps_base_ranking.c create mode 100644 orte/mca/rmaps/base/rmaps_base_select.c create mode 100644 orte/mca/rmaps/base/rmaps_base_support_fns.c create mode 100644 orte/mca/rmaps/base/rmaps_private.h create mode 100644 orte/mca/rmaps/lama/.opal_ignore create mode 100644 orte/mca/rmaps/lama/Makefile.am create mode 100644 orte/mca/rmaps/lama/help-orte-rmaps-lama.txt create mode 100644 orte/mca/rmaps/lama/owner.txt create mode 100644 orte/mca/rmaps/lama/rmaps_lama.h create mode 100644 orte/mca/rmaps/lama/rmaps_lama_component.c create mode 100644 orte/mca/rmaps/lama/rmaps_lama_max_tree.c create mode 100644 orte/mca/rmaps/lama/rmaps_lama_module.c create mode 100644 orte/mca/rmaps/lama/rmaps_lama_params.c create mode 100644 orte/mca/rmaps/mindist/Makefile.am create mode 100644 orte/mca/rmaps/mindist/help-orte-rmaps-md.txt create mode 100644 orte/mca/rmaps/mindist/owner.txt create mode 100644 orte/mca/rmaps/mindist/rmaps_mindist.h create mode 100644 orte/mca/rmaps/mindist/rmaps_mindist_component.c create mode 100644 orte/mca/rmaps/mindist/rmaps_mindist_module.c create mode 100644 orte/mca/rmaps/ppr/Makefile.am create mode 100644 orte/mca/rmaps/ppr/help-orte-rmaps-ppr.txt create mode 100644 orte/mca/rmaps/ppr/owner.txt create mode 100644 orte/mca/rmaps/ppr/rmaps_ppr.c create mode 100644 orte/mca/rmaps/ppr/rmaps_ppr.h create mode 100644 orte/mca/rmaps/ppr/rmaps_ppr_component.c create mode 100644 orte/mca/rmaps/rank_file/Makefile.am create mode 100644 orte/mca/rmaps/rank_file/common_sym_whitelist.txt create mode 100644 orte/mca/rmaps/rank_file/help-rmaps_rank_file.txt create mode 100644 orte/mca/rmaps/rank_file/owner.txt create mode 100644 orte/mca/rmaps/rank_file/rmaps_rank_file.c create mode 100644 orte/mca/rmaps/rank_file/rmaps_rank_file.h create mode 100644 orte/mca/rmaps/rank_file/rmaps_rank_file_component.c create mode 100644 orte/mca/rmaps/rank_file/rmaps_rank_file_lex.h create mode 100644 orte/mca/rmaps/rank_file/rmaps_rank_file_lex.l create mode 100644 orte/mca/rmaps/resilient/Makefile.am create mode 100644 orte/mca/rmaps/resilient/help-orte-rmaps-resilient.txt create mode 100644 orte/mca/rmaps/resilient/owner.txt create mode 100644 orte/mca/rmaps/resilient/rmaps_resilient.c create mode 100644 orte/mca/rmaps/resilient/rmaps_resilient.h create mode 100644 orte/mca/rmaps/resilient/rmaps_resilient_component.c create mode 100644 orte/mca/rmaps/rmaps.h create mode 100644 orte/mca/rmaps/rmaps_types.h create mode 100644 orte/mca/rmaps/round_robin/Makefile.am create mode 100644 orte/mca/rmaps/round_robin/help-orte-rmaps-rr.txt create mode 100644 orte/mca/rmaps/round_robin/owner.txt create mode 100644 orte/mca/rmaps/round_robin/rmaps_rr.c create mode 100644 orte/mca/rmaps/round_robin/rmaps_rr.h create mode 100644 orte/mca/rmaps/round_robin/rmaps_rr_component.c create mode 100644 orte/mca/rmaps/round_robin/rmaps_rr_mappers.c create mode 100644 orte/mca/rmaps/seq/Makefile.am create mode 100644 orte/mca/rmaps/seq/help-orte-rmaps-seq.txt create mode 100644 orte/mca/rmaps/seq/owner.txt create mode 100644 orte/mca/rmaps/seq/rmaps_seq.c create mode 100644 orte/mca/rmaps/seq/rmaps_seq.h create mode 100644 orte/mca/rmaps/seq/rmaps_seq_component.c create mode 100644 orte/mca/rmaps/staged/Makefile.am create mode 100644 orte/mca/rmaps/staged/owner.txt create mode 100644 orte/mca/rmaps/staged/rmaps_staged.c create mode 100644 orte/mca/rmaps/staged/rmaps_staged.h create mode 100644 orte/mca/rmaps/staged/rmaps_staged_component.c create mode 100644 orte/mca/rml/Makefile.am create mode 100644 orte/mca/rml/base/Makefile.am create mode 100644 orte/mca/rml/base/base.h create mode 100644 orte/mca/rml/base/owner.txt create mode 100644 orte/mca/rml/base/rml_base_contact.c create mode 100644 orte/mca/rml/base/rml_base_frame.c create mode 100644 orte/mca/rml/base/rml_base_msg_handlers.c create mode 100644 orte/mca/rml/base/rml_base_receive.c create mode 100644 orte/mca/rml/base/rml_base_stubs.c create mode 100644 orte/mca/rml/base/rml_contact.h create mode 100644 orte/mca/rml/ofi/.opal_ignore create mode 100644 orte/mca/rml/ofi/.opal_unignore create mode 100644 orte/mca/rml/ofi/Makefile.am create mode 100644 orte/mca/rml/ofi/configure.m4 create mode 100644 orte/mca/rml/ofi/rml_ofi.h create mode 100644 orte/mca/rml/ofi/rml_ofi_component.c create mode 100644 orte/mca/rml/ofi/rml_ofi_request.h create mode 100644 orte/mca/rml/ofi/rml_ofi_send.c create mode 100644 orte/mca/rml/oob/Makefile.am create mode 100644 orte/mca/rml/oob/owner.txt create mode 100644 orte/mca/rml/oob/rml_oob.h create mode 100644 orte/mca/rml/oob/rml_oob_component.c create mode 100644 orte/mca/rml/oob/rml_oob_send.c create mode 100644 orte/mca/rml/rml.h create mode 100644 orte/mca/rml/rml_types.h create mode 100644 orte/mca/routed/Makefile.am create mode 100644 orte/mca/routed/base/Makefile.am create mode 100644 orte/mca/routed/base/base.h create mode 100644 orte/mca/routed/base/owner.txt create mode 100644 orte/mca/routed/base/routed_base_fns.c create mode 100644 orte/mca/routed/base/routed_base_frame.c create mode 100644 orte/mca/routed/binomial/Makefile.am create mode 100644 orte/mca/routed/binomial/owner.txt create mode 100644 orte/mca/routed/binomial/routed_binomial.c create mode 100644 orte/mca/routed/binomial/routed_binomial.h create mode 100644 orte/mca/routed/binomial/routed_binomial_component.c create mode 100644 orte/mca/routed/debruijn/Makefile.am create mode 100644 orte/mca/routed/debruijn/owner.txt create mode 100644 orte/mca/routed/debruijn/routed_debruijn.c create mode 100644 orte/mca/routed/debruijn/routed_debruijn.h create mode 100644 orte/mca/routed/debruijn/routed_debruijn_component.c create mode 100644 orte/mca/routed/direct/Makefile.am create mode 100644 orte/mca/routed/direct/owner.txt create mode 100644 orte/mca/routed/direct/routed_direct.c create mode 100644 orte/mca/routed/direct/routed_direct.h create mode 100644 orte/mca/routed/direct/routed_direct_component.c create mode 100644 orte/mca/routed/radix/Makefile.am create mode 100644 orte/mca/routed/radix/routed_radix.c create mode 100644 orte/mca/routed/radix/routed_radix.h create mode 100644 orte/mca/routed/radix/routed_radix_component.c create mode 100644 orte/mca/routed/routed.h create mode 100644 orte/mca/routed/routed_types.h create mode 100644 orte/mca/rtc/Makefile.am create mode 100644 orte/mca/rtc/base/Makefile.am create mode 100644 orte/mca/rtc/base/base.h create mode 100644 orte/mca/rtc/base/help-orte-rtc-base.txt create mode 100644 orte/mca/rtc/base/owner.txt create mode 100644 orte/mca/rtc/base/rtc_base_frame.c create mode 100644 orte/mca/rtc/base/rtc_base_select.c create mode 100644 orte/mca/rtc/base/rtc_base_stubs.c create mode 100644 orte/mca/rtc/hwloc/Makefile.am create mode 100644 orte/mca/rtc/hwloc/owner.txt create mode 100644 orte/mca/rtc/hwloc/rtc_hwloc.c create mode 100644 orte/mca/rtc/hwloc/rtc_hwloc.h create mode 100644 orte/mca/rtc/hwloc/rtc_hwloc_component.c create mode 100644 orte/mca/rtc/rtc.h create mode 100644 orte/mca/schizo/Makefile.am create mode 100644 orte/mca/schizo/alps/Makefile.am create mode 100644 orte/mca/schizo/alps/configure.m4 create mode 100644 orte/mca/schizo/alps/owner.txt create mode 100644 orte/mca/schizo/alps/schizo_alps.c create mode 100644 orte/mca/schizo/alps/schizo_alps.h create mode 100644 orte/mca/schizo/alps/schizo_alps_component.c create mode 100644 orte/mca/schizo/base/Makefile.am create mode 100644 orte/mca/schizo/base/base.h create mode 100644 orte/mca/schizo/base/owner.txt create mode 100644 orte/mca/schizo/base/schizo_base_frame.c create mode 100644 orte/mca/schizo/base/schizo_base_select.c create mode 100644 orte/mca/schizo/base/schizo_base_stubs.c create mode 100644 orte/mca/schizo/ompi/Makefile.am create mode 100644 orte/mca/schizo/ompi/owner.txt create mode 100644 orte/mca/schizo/ompi/schizo_ompi.c create mode 100644 orte/mca/schizo/ompi/schizo_ompi.h create mode 100644 orte/mca/schizo/ompi/schizo_ompi_component.c create mode 100644 orte/mca/schizo/orte/Makefile.am create mode 100644 orte/mca/schizo/orte/schizo_orte.c create mode 100644 orte/mca/schizo/orte/schizo_orte.h create mode 100644 orte/mca/schizo/orte/schizo_orte_component.c create mode 100644 orte/mca/schizo/schizo.h create mode 100644 orte/mca/schizo/singularity/Makefile.am create mode 100644 orte/mca/schizo/singularity/configure.m4 create mode 100644 orte/mca/schizo/singularity/owner.txt create mode 100644 orte/mca/schizo/singularity/schizo_singularity.c create mode 100644 orte/mca/schizo/singularity/schizo_singularity.h create mode 100644 orte/mca/schizo/singularity/schizo_singularity_component.c create mode 100644 orte/mca/schizo/slurm/Makefile.am create mode 100644 orte/mca/schizo/slurm/configure.m4 create mode 100644 orte/mca/schizo/slurm/owner.txt create mode 100644 orte/mca/schizo/slurm/schizo_slurm.c create mode 100644 orte/mca/schizo/slurm/schizo_slurm.h create mode 100644 orte/mca/schizo/slurm/schizo_slurm_component.c create mode 100644 orte/mca/snapc/Makefile.am create mode 100644 orte/mca/snapc/base/Makefile.am create mode 100644 orte/mca/snapc/base/base.h create mode 100644 orte/mca/snapc/base/help-orte-snapc-base.txt create mode 100644 orte/mca/snapc/base/owner.txt create mode 100644 orte/mca/snapc/base/snapc_base_fns.c create mode 100644 orte/mca/snapc/base/snapc_base_frame.c create mode 100644 orte/mca/snapc/base/snapc_base_select.c create mode 100644 orte/mca/snapc/full/Makefile.am create mode 100644 orte/mca/snapc/full/configure.m4 create mode 100644 orte/mca/snapc/full/help-orte-snapc-full.txt create mode 100644 orte/mca/snapc/full/owner.txt create mode 100644 orte/mca/snapc/full/snapc_full.h create mode 100644 orte/mca/snapc/full/snapc_full_app.c create mode 100644 orte/mca/snapc/full/snapc_full_component.c create mode 100644 orte/mca/snapc/full/snapc_full_global.c create mode 100644 orte/mca/snapc/full/snapc_full_local.c create mode 100644 orte/mca/snapc/full/snapc_full_module.c create mode 100644 orte/mca/snapc/orte_snapc.7in create mode 100644 orte/mca/snapc/snapc.h create mode 100644 orte/mca/sstore/Makefile.am create mode 100644 orte/mca/sstore/base/Makefile.am create mode 100644 orte/mca/sstore/base/base.h create mode 100644 orte/mca/sstore/base/owner.txt create mode 100644 orte/mca/sstore/base/sstore_base_fns.c create mode 100644 orte/mca/sstore/base/sstore_base_frame.c create mode 100644 orte/mca/sstore/base/sstore_base_select.c create mode 100644 orte/mca/sstore/central/Makefile.am create mode 100644 orte/mca/sstore/central/configure.m4 create mode 100644 orte/mca/sstore/central/help-orte-sstore-central.txt create mode 100644 orte/mca/sstore/central/owner.txt create mode 100644 orte/mca/sstore/central/sstore_central.h create mode 100644 orte/mca/sstore/central/sstore_central_app.c create mode 100644 orte/mca/sstore/central/sstore_central_component.c create mode 100644 orte/mca/sstore/central/sstore_central_global.c create mode 100644 orte/mca/sstore/central/sstore_central_local.c create mode 100644 orte/mca/sstore/central/sstore_central_module.c create mode 100644 orte/mca/sstore/orte_sstore.7in create mode 100644 orte/mca/sstore/sstore.h create mode 100644 orte/mca/sstore/stage/Makefile.am create mode 100644 orte/mca/sstore/stage/configure.m4 create mode 100644 orte/mca/sstore/stage/help-orte-sstore-stage.txt create mode 100644 orte/mca/sstore/stage/owner.txt create mode 100644 orte/mca/sstore/stage/sstore_stage.h create mode 100644 orte/mca/sstore/stage/sstore_stage_app.c create mode 100644 orte/mca/sstore/stage/sstore_stage_component.c create mode 100644 orte/mca/sstore/stage/sstore_stage_global.c create mode 100644 orte/mca/sstore/stage/sstore_stage_local.c create mode 100644 orte/mca/sstore/stage/sstore_stage_module.c create mode 100644 orte/mca/state/Makefile.am create mode 100644 orte/mca/state/app/Makefile.am create mode 100644 orte/mca/state/app/owner.txt create mode 100644 orte/mca/state/app/state_app.c create mode 100644 orte/mca/state/app/state_app.h create mode 100644 orte/mca/state/app/state_app_component.c create mode 100644 orte/mca/state/base/Makefile.am create mode 100644 orte/mca/state/base/base.h create mode 100644 orte/mca/state/base/owner.txt create mode 100644 orte/mca/state/base/state_base_fns.c create mode 100644 orte/mca/state/base/state_base_frame.c create mode 100644 orte/mca/state/base/state_base_select.c create mode 100644 orte/mca/state/base/state_private.h create mode 100644 orte/mca/state/dvm/Makefile.am create mode 100644 orte/mca/state/dvm/owner.txt create mode 100644 orte/mca/state/dvm/state_dvm.c create mode 100644 orte/mca/state/dvm/state_dvm.h create mode 100644 orte/mca/state/dvm/state_dvm_component.c create mode 100644 orte/mca/state/hnp/Makefile.am create mode 100644 orte/mca/state/hnp/owner.txt create mode 100644 orte/mca/state/hnp/state_hnp.c create mode 100644 orte/mca/state/hnp/state_hnp.h create mode 100644 orte/mca/state/hnp/state_hnp_component.c create mode 100644 orte/mca/state/novm/Makefile.am create mode 100644 orte/mca/state/novm/owner.txt create mode 100644 orte/mca/state/novm/state_novm.c create mode 100644 orte/mca/state/novm/state_novm.h create mode 100644 orte/mca/state/novm/state_novm_component.c create mode 100644 orte/mca/state/orted/Makefile.am create mode 100644 orte/mca/state/orted/owner.txt create mode 100644 orte/mca/state/orted/state_orted.c create mode 100644 orte/mca/state/orted/state_orted.h create mode 100644 orte/mca/state/orted/state_orted_component.c create mode 100644 orte/mca/state/state.h create mode 100644 orte/mca/state/state_types.h create mode 100644 orte/mca/state/tool/Makefile.am create mode 100644 orte/mca/state/tool/owner.txt create mode 100644 orte/mca/state/tool/state_tool.c create mode 100644 orte/mca/state/tool/state_tool.h create mode 100644 orte/mca/state/tool/state_tool_component.c create mode 100644 orte/orted/Makefile.am create mode 100644 orte/orted/help-orted.txt create mode 100644 orte/orted/orted.h create mode 100644 orte/orted/orted_comm.c create mode 100644 orte/orted/orted_main.c create mode 100644 orte/orted/orted_submit.c create mode 100644 orte/orted/orted_submit.h create mode 100644 orte/orted/pmix/Makefile.am create mode 100644 orte/orted/pmix/pmix_server.c create mode 100644 orte/orted/pmix/pmix_server.h create mode 100644 orte/orted/pmix/pmix_server_dyn.c create mode 100644 orte/orted/pmix/pmix_server_fence.c create mode 100644 orte/orted/pmix/pmix_server_gen.c create mode 100644 orte/orted/pmix/pmix_server_internal.h create mode 100644 orte/orted/pmix/pmix_server_pub.c create mode 100644 orte/orted/pmix/pmix_server_register_fns.c create mode 100644 orte/runtime/Makefile.am create mode 100644 orte/runtime/data_type_support/orte_dt_compare_fns.c create mode 100644 orte/runtime/data_type_support/orte_dt_copy_fns.c create mode 100644 orte/runtime/data_type_support/orte_dt_packing_fns.c create mode 100644 orte/runtime/data_type_support/orte_dt_print_fns.c create mode 100644 orte/runtime/data_type_support/orte_dt_support.h create mode 100644 orte/runtime/data_type_support/orte_dt_unpacking_fns.c create mode 100644 orte/runtime/help-orte-runtime.txt create mode 100644 orte/runtime/orte_cr.c create mode 100644 orte/runtime/orte_cr.h create mode 100644 orte/runtime/orte_data_server.c create mode 100644 orte/runtime/orte_data_server.h create mode 100644 orte/runtime/orte_finalize.c create mode 100644 orte/runtime/orte_globals.c create mode 100644 orte/runtime/orte_globals.h create mode 100644 orte/runtime/orte_info_support.c create mode 100644 orte/runtime/orte_info_support.h create mode 100644 orte/runtime/orte_init.c create mode 100644 orte/runtime/orte_locks.c create mode 100644 orte/runtime/orte_locks.h create mode 100644 orte/runtime/orte_mca_params.c create mode 100644 orte/runtime/orte_quit.c create mode 100644 orte/runtime/orte_quit.h create mode 100644 orte/runtime/orte_wait.c create mode 100644 orte/runtime/orte_wait.h create mode 100644 orte/runtime/runtime.h create mode 100644 orte/runtime/runtime_internals.h create mode 100644 orte/test/mpi/Makefile create mode 100644 orte/test/mpi/Makefile.include create mode 100644 orte/test/mpi/abort.c create mode 100644 orte/test/mpi/accept.c create mode 100644 orte/test/mpi/bad_exit.c create mode 100644 orte/test/mpi/badcoll.c create mode 100644 orte/test/mpi/bcast_loop.c create mode 100644 orte/test/mpi/binding.c create mode 100644 orte/test/mpi/client.c create mode 100644 orte/test/mpi/concurrent_spawn.c create mode 100644 orte/test/mpi/connect.c create mode 100644 orte/test/mpi/crisscross.c create mode 100644 orte/test/mpi/debugger.c create mode 100644 orte/test/mpi/delayed_abort.c create mode 100644 orte/test/mpi/early_abort.c create mode 100644 orte/test/mpi/hello.c create mode 100644 orte/test/mpi/hello_barrier.c create mode 100644 orte/test/mpi/hello_nodename.c create mode 100644 orte/test/mpi/hello_output.c create mode 100644 orte/test/mpi/hello_show_help.c create mode 100644 orte/test/mpi/info_spawn.c create mode 100644 orte/test/mpi/init-exit77.c create mode 100644 orte/test/mpi/intercomm_create.c create mode 100644 orte/test/mpi/iof.c create mode 100644 orte/test/mpi/loop_child.c create mode 100644 orte/test/mpi/loop_spawn.c create mode 100755 orte/test/mpi/makedata.pl create mode 100644 orte/test/mpi/mpi_barrier.c create mode 100644 orte/test/mpi/mpi_info.c create mode 100644 orte/test/mpi/mpi_no_op.c create mode 100644 orte/test/mpi/mpi_spin.c create mode 100644 orte/test/mpi/multi_abort.c create mode 100644 orte/test/mpi/myhello.spec create mode 100644 orte/test/mpi/myring.spec create mode 100644 orte/test/mpi/paccept.c create mode 100644 orte/test/mpi/parallel_r64.c create mode 100644 orte/test/mpi/parallel_r8.c create mode 100644 orte/test/mpi/parallel_w64.c create mode 100644 orte/test/mpi/parallel_w8.c create mode 100644 orte/test/mpi/pconnect.c create mode 100644 orte/test/mpi/pmix.c create mode 100644 orte/test/mpi/pubsub.c create mode 100644 orte/test/mpi/read_write.c create mode 100644 orte/test/mpi/reduce-hang.c create mode 100644 orte/test/mpi/ring.c create mode 100644 orte/test/mpi/segv.c create mode 100644 orte/test/mpi/sendrecv_blaster.c create mode 100644 orte/test/mpi/server.c create mode 100755 orte/test/mpi/shell_hello create mode 100644 orte/test/mpi/simple_spawn.c create mode 100644 orte/test/mpi/singleton_client_server.c create mode 100644 orte/test/mpi/sio.c create mode 100644 orte/test/mpi/slave.c create mode 100644 orte/test/mpi/spawn-problem/Makefile create mode 100644 orte/test/mpi/spawn-problem/ch_rec.c create mode 100644 orte/test/mpi/spawn-problem/start.c create mode 100644 orte/test/mpi/spawn_multiple.c create mode 100644 orte/test/mpi/spawn_tree.c create mode 100644 orte/test/mpi/thread_init.c create mode 100644 orte/test/mpi/ziaprobe.c create mode 100644 orte/test/mpi/ziatest.README create mode 100644 orte/test/mpi/ziatest.c create mode 100644 orte/test/system/Makefile create mode 100644 orte/test/system/Makefile.include create mode 100644 orte/test/system/binom.c create mode 100644 orte/test/system/event-threads.c create mode 100644 orte/test/system/evpri-test.c create mode 100644 orte/test/system/evpri-test2.c create mode 100644 orte/test/system/evthread-test.c create mode 100644 orte/test/system/get_limits.c create mode 100644 orte/test/system/getenv_pmi.c create mode 100644 orte/test/system/iof_delay.c create mode 100644 orte/test/system/iof_stress.c create mode 100644 orte/test/system/mapper.c create mode 100755 orte/test/system/mapr.py create mode 100644 orte/test/system/no_op.c create mode 100644 orte/test/system/ofi_big_msg.c create mode 100644 orte/test/system/ofi_conduit_stress.c create mode 100644 orte/test/system/ofi_query_test.c create mode 100644 orte/test/system/ofi_stress.c create mode 100644 orte/test/system/oob_stress.c create mode 100644 orte/test/system/oob_stress_channel.c create mode 100644 orte/test/system/opal-evpri-test.c create mode 100644 orte/test/system/opal_hotel.c create mode 100644 orte/test/system/opal_hwloc.c create mode 100644 orte/test/system/opal_interface.c create mode 100644 orte/test/system/orte_abort.c create mode 100644 orte/test/system/orte_dfs.c create mode 100644 orte/test/system/orte_errors.c create mode 100644 orte/test/system/orte_exit.c create mode 100644 orte/test/system/orte_loop_child.c create mode 100644 orte/test/system/orte_loop_spawn.c create mode 100644 orte/test/system/orte_no_op.c create mode 100644 orte/test/system/orte_nodename.c create mode 100644 orte/test/system/orte_notify.c create mode 100644 orte/test/system/orte_spawn.c create mode 100644 orte/test/system/orte_spin.c create mode 100644 orte/test/system/orte_tool.c create mode 100644 orte/test/system/pmixtool.c create mode 100644 orte/test/system/psm_keygen.c create mode 100644 orte/test/system/radix.c create mode 100755 orte/test/system/red.py create mode 100644 orte/test/system/reducer.c create mode 100644 orte/test/system/regex.c create mode 100644 orte/test/system/segfault.c create mode 100644 orte/test/system/sigusr_trap.c create mode 100644 orte/test/system/spin.c create mode 100644 orte/test/system/test-time.c create mode 100644 orte/test/system/ulfm.c create mode 100644 orte/tools/Makefile.am create mode 100644 orte/tools/orte-checkpoint/Makefile.am create mode 100644 orte/tools/orte-checkpoint/help-orte-checkpoint.txt create mode 100644 orte/tools/orte-checkpoint/orte-checkpoint.1in create mode 100644 orte/tools/orte-checkpoint/orte-checkpoint.c create mode 100644 orte/tools/orte-clean/Makefile.am create mode 100644 orte/tools/orte-clean/help-orte-clean.txt create mode 100644 orte/tools/orte-clean/orte-clean.1in create mode 100644 orte/tools/orte-clean/orte-clean.c create mode 100644 orte/tools/orte-dvm/Makefile.am create mode 100644 orte/tools/orte-dvm/orte-dvm.1in create mode 100644 orte/tools/orte-dvm/orte-dvm.c create mode 100644 orte/tools/orte-info/Makefile.am create mode 100644 orte/tools/orte-info/components.c create mode 100644 orte/tools/orte-info/help-orte-info.txt create mode 100644 orte/tools/orte-info/orte-info.1in create mode 100644 orte/tools/orte-info/orte-info.c create mode 100644 orte/tools/orte-info/orte-info.h create mode 100644 orte/tools/orte-info/output.c create mode 100644 orte/tools/orte-info/param.c create mode 100644 orte/tools/orte-info/version.c create mode 100644 orte/tools/orte-migrate/Makefile.am create mode 100644 orte/tools/orte-migrate/help-orte-migrate.txt create mode 100644 orte/tools/orte-migrate/orte-migrate.1in create mode 100644 orte/tools/orte-migrate/orte-migrate.c create mode 100644 orte/tools/orte-ps/Makefile.am create mode 100644 orte/tools/orte-ps/help-orte-ps.txt create mode 100644 orte/tools/orte-ps/orte-ps.1in create mode 100644 orte/tools/orte-ps/orte-ps.c create mode 100644 orte/tools/orte-restart/Makefile.am create mode 100644 orte/tools/orte-restart/help-orte-restart.txt create mode 100644 orte/tools/orte-restart/orte-restart.1in create mode 100644 orte/tools/orte-restart/orte-restart.c create mode 100644 orte/tools/orte-server/Makefile.am create mode 100644 orte/tools/orte-server/help-orte-server.txt create mode 100644 orte/tools/orte-server/orte-server.1in create mode 100644 orte/tools/orte-server/orte-server.c create mode 100644 orte/tools/orte-top/Makefile.am create mode 100644 orte/tools/orte-top/help-orte-top.txt create mode 100644 orte/tools/orte-top/orte-top.1in create mode 100644 orte/tools/orte-top/orte-top.c create mode 100644 orte/tools/orted/Makefile.am create mode 100644 orte/tools/orted/orted.1in create mode 100644 orte/tools/orted/orted.c create mode 100644 orte/tools/orterun/Makefile.am create mode 100644 orte/tools/orterun/help-orterun.txt create mode 100644 orte/tools/orterun/main.c create mode 100644 orte/tools/orterun/orterun.1in create mode 100644 orte/tools/orterun/orterun.c create mode 100644 orte/tools/orterun/orterun.h create mode 100644 orte/tools/wrappers/Makefile.am create mode 100644 orte/tools/wrappers/orte.pc.in create mode 100644 orte/tools/wrappers/orte_wrapper_script.in create mode 100644 orte/tools/wrappers/ortecc-wrapper-data.txt.in create mode 100644 orte/util/Makefile.am create mode 100644 orte/util/attr.c create mode 100644 orte/util/attr.h create mode 100644 orte/util/comm/comm.c create mode 100644 orte/util/comm/comm.h create mode 100644 orte/util/context_fns.c create mode 100644 orte/util/context_fns.h create mode 100644 orte/util/dash_host/dash_host.c create mode 100644 orte/util/dash_host/dash_host.h create mode 100644 orte/util/dash_host/help-dash-host.txt create mode 100644 orte/util/error_strings.c create mode 100644 orte/util/error_strings.h create mode 100644 orte/util/help-regex.txt create mode 100644 orte/util/hnp_contact.c create mode 100644 orte/util/hnp_contact.h create mode 100644 orte/util/hostfile/help-hostfile.txt create mode 100644 orte/util/hostfile/hostfile.c create mode 100644 orte/util/hostfile/hostfile.h create mode 100644 orte/util/hostfile/hostfile_lex.h create mode 100644 orte/util/hostfile/hostfile_lex.l create mode 100644 orte/util/hostfile/orte_hosts.7in create mode 100644 orte/util/listener.c create mode 100644 orte/util/listener.h create mode 100644 orte/util/name_fns.c create mode 100644 orte/util/name_fns.h create mode 100644 orte/util/nidmap.c create mode 100644 orte/util/nidmap.h create mode 100644 orte/util/parse_options.c create mode 100644 orte/util/parse_options.h create mode 100644 orte/util/pre_condition_transports.c create mode 100644 orte/util/pre_condition_transports.h create mode 100644 orte/util/proc_info.c create mode 100644 orte/util/proc_info.h create mode 100644 orte/util/regex.c create mode 100644 orte/util/regex.h create mode 100644 orte/util/session_dir.c create mode 100644 orte/util/session_dir.h create mode 100644 orte/util/show_help.c create mode 100644 orte/util/show_help.h create mode 100644 oshmem/Makefile.am create mode 100644 oshmem/include/Makefile.am create mode 100644 oshmem/include/oshmem/Makefile.am create mode 100644 oshmem/include/oshmem/constants.h create mode 100644 oshmem/include/oshmem/types.h create mode 100644 oshmem/include/oshmem/version.h.in create mode 100644 oshmem/include/oshmem_config.h create mode 100644 oshmem/include/pshmem.h create mode 100644 oshmem/include/pshmemx.h create mode 100644 oshmem/include/shmem-compat.h create mode 100644 oshmem/include/shmem.fh create mode 100644 oshmem/include/shmem.h.in create mode 100644 oshmem/include/shmemx.h create mode 100644 oshmem/info/Makefile.am create mode 100644 oshmem/info/info.c create mode 100644 oshmem/info/info.h create mode 100644 oshmem/mca/Makefile.am create mode 100644 oshmem/mca/atomic/Makefile.am create mode 100644 oshmem/mca/atomic/atomic.h create mode 100644 oshmem/mca/atomic/base/Makefile.am create mode 100644 oshmem/mca/atomic/base/atomic_base_available.c create mode 100644 oshmem/mca/atomic/base/atomic_base_frame.c create mode 100644 oshmem/mca/atomic/base/atomic_base_select.c create mode 100644 oshmem/mca/atomic/base/base.h create mode 100644 oshmem/mca/atomic/basic/Makefile.am create mode 100644 oshmem/mca/atomic/basic/atomic_basic.h create mode 100644 oshmem/mca/atomic/basic/atomic_basic_component.c create mode 100644 oshmem/mca/atomic/basic/atomic_basic_cswap.c create mode 100644 oshmem/mca/atomic/basic/atomic_basic_fadd.c create mode 100644 oshmem/mca/atomic/basic/atomic_basic_module.c create mode 100644 oshmem/mca/atomic/mxm/Makefile.am create mode 100644 oshmem/mca/atomic/mxm/atomic_mxm.h create mode 100644 oshmem/mca/atomic/mxm/atomic_mxm_component.c create mode 100644 oshmem/mca/atomic/mxm/atomic_mxm_cswap.c create mode 100644 oshmem/mca/atomic/mxm/atomic_mxm_fadd.c create mode 100644 oshmem/mca/atomic/mxm/atomic_mxm_module.c create mode 100644 oshmem/mca/atomic/mxm/configure.m4 create mode 100644 oshmem/mca/atomic/ucx/Makefile.am create mode 100644 oshmem/mca/atomic/ucx/atomic_ucx.h create mode 100644 oshmem/mca/atomic/ucx/atomic_ucx_component.c create mode 100644 oshmem/mca/atomic/ucx/atomic_ucx_cswap.c create mode 100644 oshmem/mca/atomic/ucx/atomic_ucx_fadd.c create mode 100644 oshmem/mca/atomic/ucx/atomic_ucx_module.c create mode 100644 oshmem/mca/atomic/ucx/configure.m4 create mode 100644 oshmem/mca/mca.h create mode 100644 oshmem/mca/memheap/Makefile.am create mode 100644 oshmem/mca/memheap/README create mode 100644 oshmem/mca/memheap/base/Makefile.am create mode 100644 oshmem/mca/memheap/base/base.h create mode 100644 oshmem/mca/memheap/base/help-oshmem-memheap.txt create mode 100644 oshmem/mca/memheap/base/memheap_base_alloc.c create mode 100644 oshmem/mca/memheap/base/memheap_base_frame.c create mode 100644 oshmem/mca/memheap/base/memheap_base_mkey.c create mode 100644 oshmem/mca/memheap/base/memheap_base_register.c create mode 100644 oshmem/mca/memheap/base/memheap_base_select.c create mode 100644 oshmem/mca/memheap/base/memheap_base_static.c create mode 100644 oshmem/mca/memheap/buddy/Makefile.am create mode 100644 oshmem/mca/memheap/buddy/memheap_buddy.c create mode 100644 oshmem/mca/memheap/buddy/memheap_buddy.h create mode 100644 oshmem/mca/memheap/buddy/memheap_buddy_component.c create mode 100644 oshmem/mca/memheap/buddy/memheap_buddy_component.h create mode 100644 oshmem/mca/memheap/configure.m4 create mode 100644 oshmem/mca/memheap/memheap.h create mode 100644 oshmem/mca/memheap/ptmalloc/Makefile.am create mode 100644 oshmem/mca/memheap/ptmalloc/malloc.c create mode 100644 oshmem/mca/memheap/ptmalloc/malloc_defs.h create mode 100644 oshmem/mca/memheap/ptmalloc/memheap_ptmalloc.c create mode 100644 oshmem/mca/memheap/ptmalloc/memheap_ptmalloc.h create mode 100644 oshmem/mca/memheap/ptmalloc/memheap_ptmalloc_component.c create mode 100644 oshmem/mca/memheap/ptmalloc/memheap_ptmalloc_component.h create mode 100644 oshmem/mca/scoll/Makefile.am create mode 100644 oshmem/mca/scoll/base/Makefile.am create mode 100644 oshmem/mca/scoll/base/base.h create mode 100644 oshmem/mca/scoll/base/scoll_base_available.c create mode 100644 oshmem/mca/scoll/base/scoll_base_frame.c create mode 100644 oshmem/mca/scoll/base/scoll_base_select.c create mode 100644 oshmem/mca/scoll/basic/Makefile.am create mode 100644 oshmem/mca/scoll/basic/scoll_basic.h create mode 100644 oshmem/mca/scoll/basic/scoll_basic_alltoall.c create mode 100644 oshmem/mca/scoll/basic/scoll_basic_barrier.c create mode 100644 oshmem/mca/scoll/basic/scoll_basic_broadcast.c create mode 100644 oshmem/mca/scoll/basic/scoll_basic_collect.c create mode 100644 oshmem/mca/scoll/basic/scoll_basic_component.c create mode 100644 oshmem/mca/scoll/basic/scoll_basic_module.c create mode 100644 oshmem/mca/scoll/basic/scoll_basic_reduce.c create mode 100644 oshmem/mca/scoll/fca/Makefile.am create mode 100644 oshmem/mca/scoll/fca/configure.m4 create mode 100644 oshmem/mca/scoll/fca/help-oshmem-scoll-fca.txt create mode 100644 oshmem/mca/scoll/fca/scoll_fca.h create mode 100644 oshmem/mca/scoll/fca/scoll_fca_api.h create mode 100644 oshmem/mca/scoll/fca/scoll_fca_component.c create mode 100644 oshmem/mca/scoll/fca/scoll_fca_debug.h create mode 100644 oshmem/mca/scoll/fca/scoll_fca_module.c create mode 100644 oshmem/mca/scoll/fca/scoll_fca_ops.c create mode 100644 oshmem/mca/scoll/mpi/Makefile.am create mode 100644 oshmem/mca/scoll/mpi/help-oshmem-scoll-mpi.txt create mode 100644 oshmem/mca/scoll/mpi/scoll_mpi.h create mode 100644 oshmem/mca/scoll/mpi/scoll_mpi_component.c create mode 100644 oshmem/mca/scoll/mpi/scoll_mpi_debug.h create mode 100644 oshmem/mca/scoll/mpi/scoll_mpi_dtypes.h create mode 100644 oshmem/mca/scoll/mpi/scoll_mpi_module.c create mode 100644 oshmem/mca/scoll/mpi/scoll_mpi_ops.c create mode 100644 oshmem/mca/scoll/scoll.h create mode 100644 oshmem/mca/spml/Makefile.am create mode 100644 oshmem/mca/spml/base/Makefile.am create mode 100644 oshmem/mca/spml/base/base.h create mode 100644 oshmem/mca/spml/base/spml_base.c create mode 100644 oshmem/mca/spml/base/spml_base_atomicreq.c create mode 100644 oshmem/mca/spml/base/spml_base_atomicreq.h create mode 100644 oshmem/mca/spml/base/spml_base_frame.c create mode 100644 oshmem/mca/spml/base/spml_base_getreq.c create mode 100644 oshmem/mca/spml/base/spml_base_getreq.h create mode 100644 oshmem/mca/spml/base/spml_base_putreq.c create mode 100644 oshmem/mca/spml/base/spml_base_putreq.h create mode 100644 oshmem/mca/spml/base/spml_base_request.c create mode 100644 oshmem/mca/spml/base/spml_base_request.h create mode 100644 oshmem/mca/spml/base/spml_base_request_dbg.h create mode 100644 oshmem/mca/spml/base/spml_base_select.c create mode 100644 oshmem/mca/spml/configure.m4 create mode 100644 oshmem/mca/spml/ikrit/Makefile.am create mode 100644 oshmem/mca/spml/ikrit/configure.m4 create mode 100644 oshmem/mca/spml/ikrit/help-oshmem-spml-ikrit.txt create mode 100644 oshmem/mca/spml/ikrit/spml_ikrit.c create mode 100644 oshmem/mca/spml/ikrit/spml_ikrit.h create mode 100644 oshmem/mca/spml/ikrit/spml_ikrit_component.c create mode 100644 oshmem/mca/spml/ikrit/spml_ikrit_component.h create mode 100644 oshmem/mca/spml/spml.h create mode 100644 oshmem/mca/spml/ucx/Makefile.am create mode 100644 oshmem/mca/spml/ucx/configure.m4 create mode 100644 oshmem/mca/spml/ucx/spml_ucx.c create mode 100644 oshmem/mca/spml/ucx/spml_ucx.h create mode 100644 oshmem/mca/spml/ucx/spml_ucx_component.c create mode 100644 oshmem/mca/spml/ucx/spml_ucx_component.h create mode 100644 oshmem/mca/spml/yoda/Makefile.am create mode 100644 oshmem/mca/spml/yoda/help-oshmem-spml-yoda.txt create mode 100644 oshmem/mca/spml/yoda/post_configure.sh create mode 100644 oshmem/mca/spml/yoda/spml_yoda.c create mode 100644 oshmem/mca/spml/yoda/spml_yoda.h create mode 100644 oshmem/mca/spml/yoda/spml_yoda_component.c create mode 100644 oshmem/mca/spml/yoda/spml_yoda_component.h create mode 100644 oshmem/mca/spml/yoda/spml_yoda_getreq.c create mode 100644 oshmem/mca/spml/yoda/spml_yoda_getreq.h create mode 100644 oshmem/mca/spml/yoda/spml_yoda_putreq.c create mode 100644 oshmem/mca/spml/yoda/spml_yoda_putreq.h create mode 100644 oshmem/mca/spml/yoda/spml_yoda_rdmafrag.h create mode 100644 oshmem/mca/sshmem/Makefile.am create mode 100644 oshmem/mca/sshmem/base/Makefile.am create mode 100644 oshmem/mca/sshmem/base/base.h create mode 100644 oshmem/mca/sshmem/base/help-oshmem-sshmem.txt create mode 100644 oshmem/mca/sshmem/base/sshmem_base_close.c create mode 100644 oshmem/mca/sshmem/base/sshmem_base_open.c create mode 100644 oshmem/mca/sshmem/base/sshmem_base_select.c create mode 100644 oshmem/mca/sshmem/base/sshmem_base_wrappers.c create mode 100644 oshmem/mca/sshmem/mmap/Makefile.am create mode 100644 oshmem/mca/sshmem/mmap/configure.m4 create mode 100644 oshmem/mca/sshmem/mmap/help-oshmem-sshmem-mmap.txt create mode 100644 oshmem/mca/sshmem/mmap/sshmem_mmap.h create mode 100644 oshmem/mca/sshmem/mmap/sshmem_mmap_component.c create mode 100644 oshmem/mca/sshmem/mmap/sshmem_mmap_module.c create mode 100644 oshmem/mca/sshmem/sshmem.h create mode 100644 oshmem/mca/sshmem/sshmem_types.h create mode 100644 oshmem/mca/sshmem/sysv/Makefile.am create mode 100644 oshmem/mca/sshmem/sysv/configure.m4 create mode 100644 oshmem/mca/sshmem/sysv/help-oshmem-sshmem-sysv.txt create mode 100644 oshmem/mca/sshmem/sysv/sshmem_sysv.h create mode 100644 oshmem/mca/sshmem/sysv/sshmem_sysv_component.c create mode 100644 oshmem/mca/sshmem/sysv/sshmem_sysv_module.c create mode 100644 oshmem/mca/sshmem/verbs/Makefile.am create mode 100644 oshmem/mca/sshmem/verbs/configure.m4 create mode 100644 oshmem/mca/sshmem/verbs/sshmem_verbs.h create mode 100644 oshmem/mca/sshmem/verbs/sshmem_verbs_component.c create mode 100644 oshmem/mca/sshmem/verbs/sshmem_verbs_module.c create mode 100644 oshmem/op/Makefile.am create mode 100644 oshmem/op/op.c create mode 100644 oshmem/op/op.h create mode 100644 oshmem/proc/Makefile.am create mode 100644 oshmem/proc/proc.c create mode 100644 oshmem/proc/proc.h create mode 100644 oshmem/proc/proc_group_cache.c create mode 100644 oshmem/proc/proc_group_cache.h create mode 100644 oshmem/request/Makefile.am create mode 100644 oshmem/request/request.c create mode 100644 oshmem/request/request.h create mode 100644 oshmem/request/request_dbg.h create mode 100644 oshmem/runtime/Makefile.am create mode 100644 oshmem/runtime/help-shmem-runtime.txt create mode 100644 oshmem/runtime/oshmem_info_support.c create mode 100644 oshmem/runtime/oshmem_info_support.h create mode 100644 oshmem/runtime/oshmem_shmem_abort.c create mode 100644 oshmem/runtime/oshmem_shmem_exchange.c create mode 100644 oshmem/runtime/oshmem_shmem_finalize.c create mode 100644 oshmem/runtime/oshmem_shmem_init.c create mode 100644 oshmem/runtime/oshmem_shmem_params.c create mode 100644 oshmem/runtime/oshmem_shmem_preconnect.h create mode 100644 oshmem/runtime/params.h create mode 100644 oshmem/runtime/runtime.h create mode 100644 oshmem/shmem/Makefile.am create mode 100644 oshmem/shmem/c/Makefile.am create mode 100644 oshmem/shmem/c/profile/Makefile.am create mode 100644 oshmem/shmem/c/profile/defines.h create mode 100644 oshmem/shmem/c/shmem_add.c create mode 100644 oshmem/shmem/c/shmem_addr_accessible.c create mode 100644 oshmem/shmem/c/shmem_align.c create mode 100644 oshmem/shmem/c/shmem_alloc.c create mode 100644 oshmem/shmem/c/shmem_alltoall.c create mode 100644 oshmem/shmem/c/shmem_barrier.c create mode 100644 oshmem/shmem/c/shmem_broadcast.c create mode 100644 oshmem/shmem/c/shmem_clear_cache_inv.c create mode 100644 oshmem/shmem/c/shmem_clear_cache_line_inv.c create mode 100644 oshmem/shmem/c/shmem_clear_lock.c create mode 100644 oshmem/shmem/c/shmem_collect.c create mode 100644 oshmem/shmem/c/shmem_cswap.c create mode 100644 oshmem/shmem/c/shmem_fadd.c create mode 100644 oshmem/shmem/c/shmem_fence.c create mode 100644 oshmem/shmem/c/shmem_fetch.c create mode 100644 oshmem/shmem/c/shmem_finalize.c create mode 100644 oshmem/shmem/c/shmem_finc.c create mode 100644 oshmem/shmem/c/shmem_free.c create mode 100644 oshmem/shmem/c/shmem_g.c create mode 100644 oshmem/shmem/c/shmem_get.c create mode 100644 oshmem/shmem/c/shmem_get_nb.c create mode 100644 oshmem/shmem/c/shmem_global_exit.c create mode 100644 oshmem/shmem/c/shmem_iget.c create mode 100644 oshmem/shmem/c/shmem_inc.c create mode 100644 oshmem/shmem/c/shmem_info.c create mode 100644 oshmem/shmem/c/shmem_init.c create mode 100644 oshmem/shmem/c/shmem_iput.c create mode 100644 oshmem/shmem/c/shmem_lock.c create mode 100644 oshmem/shmem/c/shmem_p.c create mode 100644 oshmem/shmem/c/shmem_pe_accessible.c create mode 100644 oshmem/shmem/c/shmem_ptr.c create mode 100644 oshmem/shmem/c/shmem_put.c create mode 100644 oshmem/shmem/c/shmem_put_nb.c create mode 100644 oshmem/shmem/c/shmem_query.c create mode 100644 oshmem/shmem/c/shmem_quiet.c create mode 100644 oshmem/shmem/c/shmem_realloc.c create mode 100644 oshmem/shmem/c/shmem_reduce.c create mode 100644 oshmem/shmem/c/shmem_set.c create mode 100644 oshmem/shmem/c/shmem_set_cache_inv.c create mode 100644 oshmem/shmem/c/shmem_set_cache_line_inv.c create mode 100644 oshmem/shmem/c/shmem_set_lock.c create mode 100644 oshmem/shmem/c/shmem_swap.c create mode 100644 oshmem/shmem/c/shmem_test_lock.c create mode 100644 oshmem/shmem/c/shmem_udcflush.c create mode 100644 oshmem/shmem/c/shmem_udcflush_line.c create mode 100644 oshmem/shmem/c/shmem_wait.c create mode 100644 oshmem/shmem/fortran/Makefile.am create mode 100644 oshmem/shmem/fortran/bindings.h create mode 100644 oshmem/shmem/fortran/profile/Makefile.am create mode 100644 oshmem/shmem/fortran/profile/defines.h create mode 100644 oshmem/shmem/fortran/profile/pbindings.h create mode 100644 oshmem/shmem/fortran/profile/prototypes_pshmem.h create mode 100644 oshmem/shmem/fortran/prototypes_shmem.h create mode 100644 oshmem/shmem/fortran/shmem_addr_accessible_f.c create mode 100644 oshmem/shmem/fortran/shmem_alltoall_f.c create mode 100644 oshmem/shmem/fortran/shmem_and_to_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_barrier_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_barrier_f.c create mode 100644 oshmem/shmem/fortran/shmem_broadcast_f.c create mode 100644 oshmem/shmem/fortran/shmem_cache_f.c create mode 100644 oshmem/shmem/fortran/shmem_character_get_f.c create mode 100644 oshmem/shmem/fortran/shmem_character_put_f.c create mode 100644 oshmem/shmem/fortran/shmem_collect_f.c create mode 100644 oshmem/shmem/fortran/shmem_complex_get_f.c create mode 100644 oshmem/shmem/fortran/shmem_complex_iget_f.c create mode 100644 oshmem/shmem/fortran/shmem_complex_iput_f.c create mode 100644 oshmem/shmem/fortran/shmem_complex_put_f.c create mode 100644 oshmem/shmem/fortran/shmem_double_get_f.c create mode 100644 oshmem/shmem/fortran/shmem_double_iget_f.c create mode 100644 oshmem/shmem/fortran/shmem_double_iput_f.c create mode 100644 oshmem/shmem/fortran/shmem_double_put_f.c create mode 100644 oshmem/shmem/fortran/shmem_fence_f.c create mode 100644 oshmem/shmem/fortran/shmem_finalize_f.c create mode 100644 oshmem/shmem/fortran/shmem_fortran_pointer.h create mode 100644 oshmem/shmem/fortran/shmem_get128_f.c create mode 100644 oshmem/shmem/fortran/shmem_get32_f.c create mode 100644 oshmem/shmem/fortran/shmem_get4_f.c create mode 100644 oshmem/shmem/fortran/shmem_get64_f.c create mode 100644 oshmem/shmem/fortran/shmem_get8_f.c create mode 100644 oshmem/shmem/fortran/shmem_get_nb_f.c create mode 100644 oshmem/shmem/fortran/shmem_getmem_f.c create mode 100644 oshmem/shmem/fortran/shmem_global_exit_f.c create mode 100644 oshmem/shmem/fortran/shmem_iget128_f.c create mode 100644 oshmem/shmem/fortran/shmem_iget32_f.c create mode 100644 oshmem/shmem/fortran/shmem_iget4_f.c create mode 100644 oshmem/shmem/fortran/shmem_iget64_f.c create mode 100644 oshmem/shmem/fortran/shmem_iget8_f.c create mode 100644 oshmem/shmem/fortran/shmem_info_f.c create mode 100644 oshmem/shmem/fortran/shmem_init_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_add_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_cswap_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_fadd_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_fetch_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_finc_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_inc_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_set_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_swap_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_wait_f.c create mode 100644 oshmem/shmem/fortran/shmem_int4_wait_until_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_add_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_cswap_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_fadd_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_fetch_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_finc_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_inc_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_set_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_swap_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_wait_f.c create mode 100644 oshmem/shmem/fortran/shmem_int8_wait_until_f.c create mode 100644 oshmem/shmem/fortran/shmem_integer_get_f.c create mode 100644 oshmem/shmem/fortran/shmem_integer_iget_f.c create mode 100644 oshmem/shmem/fortran/shmem_integer_iput_f.c create mode 100644 oshmem/shmem/fortran/shmem_integer_put_f.c create mode 100644 oshmem/shmem/fortran/shmem_iput128_f.c create mode 100644 oshmem/shmem/fortran/shmem_iput32_f.c create mode 100644 oshmem/shmem/fortran/shmem_iput4_f.c create mode 100644 oshmem/shmem/fortran/shmem_iput64_f.c create mode 100644 oshmem/shmem/fortran/shmem_iput8_f.c create mode 100644 oshmem/shmem/fortran/shmem_lock_f.c create mode 100644 oshmem/shmem/fortran/shmem_logical_get_f.c create mode 100644 oshmem/shmem/fortran/shmem_logical_iget_f.c create mode 100644 oshmem/shmem/fortran/shmem_logical_iput_f.c create mode 100644 oshmem/shmem/fortran/shmem_logical_put_f.c create mode 100644 oshmem/shmem/fortran/shmem_max_to_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_min_to_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_my_pe_f.c create mode 100644 oshmem/shmem/fortran/shmem_n_pes_f.c create mode 100644 oshmem/shmem/fortran/shmem_or_to_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_pe_accessible_f.c create mode 100644 oshmem/shmem/fortran/shmem_prod_to_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_ptr_f.c create mode 100644 oshmem/shmem/fortran/shmem_put128_f.c create mode 100644 oshmem/shmem/fortran/shmem_put32_f.c create mode 100644 oshmem/shmem/fortran/shmem_put4_f.c create mode 100644 oshmem/shmem/fortran/shmem_put64_f.c create mode 100644 oshmem/shmem/fortran/shmem_put8_f.c create mode 100644 oshmem/shmem/fortran/shmem_put_nb_f.c create mode 100644 oshmem/shmem/fortran/shmem_putmem_f.c create mode 100644 oshmem/shmem/fortran/shmem_quiet_f.c create mode 100644 oshmem/shmem/fortran/shmem_real4_fetch_f.c create mode 100644 oshmem/shmem/fortran/shmem_real4_set_f.c create mode 100644 oshmem/shmem/fortran/shmem_real4_swap_f.c create mode 100644 oshmem/shmem/fortran/shmem_real8_fetch_f.c create mode 100644 oshmem/shmem/fortran/shmem_real8_set_f.c create mode 100644 oshmem/shmem/fortran/shmem_real8_swap_f.c create mode 100644 oshmem/shmem/fortran/shmem_real_get_f.c create mode 100644 oshmem/shmem/fortran/shmem_real_iget_f.c create mode 100644 oshmem/shmem/fortran/shmem_real_iput_f.c create mode 100644 oshmem/shmem/fortran/shmem_real_put_f.c create mode 100644 oshmem/shmem/fortran/shmem_sum_to_all_f.c create mode 100644 oshmem/shmem/fortran/shmem_swap_f.c create mode 100644 oshmem/shmem/fortran/shmem_wait_f.c create mode 100644 oshmem/shmem/fortran/shmem_wait_until_f.c create mode 100644 oshmem/shmem/fortran/shmem_xor_to_all_f.c create mode 100644 oshmem/shmem/fortran/shpalloc_f.c create mode 100644 oshmem/shmem/fortran/shpclmove_f.c create mode 100644 oshmem/shmem/fortran/shpdeallc_f.c create mode 100644 oshmem/shmem/help-shmem-api.txt create mode 100644 oshmem/shmem/man/man3/Makefile.extra create mode 100644 oshmem/shmem/man/man3/OpenSHMEM.3in create mode 100644 oshmem/shmem/man/man3/_my_pe.3in create mode 100644 oshmem/shmem/man/man3/_num_pes.3in create mode 100644 oshmem/shmem/man/man3/intro_shmem.3in create mode 100644 oshmem/shmem/man/man3/shfree.3in create mode 100644 oshmem/shmem/man/man3/shmalloc.3in create mode 100644 oshmem/shmem/man/man3/shmem_addr_accessible.3in create mode 100644 oshmem/shmem/man/man3/shmem_align.3in create mode 100644 oshmem/shmem/man/man3/shmem_alltoall32.3in create mode 100644 oshmem/shmem/man/man3/shmem_alltoall64.3in create mode 100644 oshmem/shmem/man/man3/shmem_alltoalls32.3in create mode 100644 oshmem/shmem/man/man3/shmem_alltoalls64.3in create mode 100644 oshmem/shmem/man/man3/shmem_barrier.3in create mode 100644 oshmem/shmem/man/man3/shmem_barrier_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_broadcast32.3in create mode 100644 oshmem/shmem/man/man3/shmem_broadcast64.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_char_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_clear_cache_inv.3in create mode 100644 oshmem/shmem/man/man3/shmem_clear_cache_line_inv.3in create mode 100644 oshmem/shmem/man/man3/shmem_clear_lock.3in create mode 100644 oshmem/shmem/man/man3/shmem_collect32.3in create mode 100644 oshmem/shmem/man/man3/shmem_collect64.3in create mode 100644 oshmem/shmem/man/man3/shmem_complexd_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_complexd_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_complexf_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_complexf_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_fetch.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_set.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_double_swap.3in create mode 100644 oshmem/shmem/man/man3/shmem_fcollect32.3in create mode 100644 oshmem/shmem/man/man3/shmem_fcollect64.3in create mode 100644 oshmem/shmem/man/man3/shmem_fence.3in create mode 100644 oshmem/shmem/man/man3/shmem_finalize.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_fetch.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_set.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_float_swap.3in create mode 100644 oshmem/shmem/man/man3/shmem_free.3in create mode 100644 oshmem/shmem/man/man3/shmem_get128.3in create mode 100644 oshmem/shmem/man/man3/shmem_get128_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get16_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get32.3in create mode 100644 oshmem/shmem/man/man3/shmem_get32_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get64.3in create mode 100644 oshmem/shmem/man/man3/shmem_get64_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_get8_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_getmem.3in create mode 100644 oshmem/shmem/man/man3/shmem_getmem_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_global_exit.3in create mode 100644 oshmem/shmem/man/man3/shmem_iget128.3in create mode 100644 oshmem/shmem/man/man3/shmem_iget32.3in create mode 100644 oshmem/shmem/man/man3/shmem_iget64.3in create mode 100644 oshmem/shmem/man/man3/shmem_info_get_name.3in create mode 100644 oshmem/shmem/man/man3/shmem_info_get_version.3in create mode 100644 oshmem/shmem/man/man3/shmem_init.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_add.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_and_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_cswap.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_fadd.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_fetch.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_finc.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_inc.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_or_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_set.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_swap.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_wait.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_wait_until.3in create mode 100644 oshmem/shmem/man/man3/shmem_int_xor_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_iput128.3in create mode 100644 oshmem/shmem/man/man3/shmem_iput32.3in create mode 100644 oshmem/shmem/man/man3/shmem_iput64.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_add.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_and_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_cswap.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_fadd.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_fetch.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_finc.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_inc.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_or_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_set.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_swap.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_wait.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_wait_until.3in create mode 100644 oshmem/shmem/man/man3/shmem_long_xor_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longdouble_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_add.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_and_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_cswap.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_fadd.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_fetch.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_finc.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_inc.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_or_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_set.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_swap.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_wait.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_wait_until.3in create mode 100644 oshmem/shmem/man/man3/shmem_longlong_xor_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_malloc.3in create mode 100644 oshmem/shmem/man/man3/shmem_my_pe.3in create mode 100644 oshmem/shmem/man/man3/shmem_n_pes.3in create mode 100644 oshmem/shmem/man/man3/shmem_pe_accessible.3in create mode 100644 oshmem/shmem/man/man3/shmem_ptr.3in create mode 100644 oshmem/shmem/man/man3/shmem_put128.3in create mode 100644 oshmem/shmem/man/man3/shmem_put128_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put16_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put32.3in create mode 100644 oshmem/shmem/man/man3/shmem_put32_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put64.3in create mode 100644 oshmem/shmem/man/man3/shmem_put64_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_put8_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_putmem.3in create mode 100644 oshmem/shmem/man/man3/shmem_putmem_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_quiet.3in create mode 100644 oshmem/shmem/man/man3/shmem_realloc.3in create mode 100644 oshmem/shmem/man/man3/shmem_set_cache_inv.3in create mode 100644 oshmem/shmem/man/man3/shmem_set_cache_line_inv.3in create mode 100644 oshmem/shmem/man/man3/shmem_set_lock.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_and_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_g.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_get.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_get_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_iget.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_iput.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_max_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_min_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_or_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_p.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_prod_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_put.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_put_nbi.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_sum_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_wait.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_wait_until.3in create mode 100644 oshmem/shmem/man/man3/shmem_short_xor_to_all.3in create mode 100644 oshmem/shmem/man/man3/shmem_swap.3in create mode 100644 oshmem/shmem/man/man3/shmem_test_lock.3in create mode 100644 oshmem/shmem/man/man3/shmem_udcflush.3in create mode 100644 oshmem/shmem/man/man3/shmem_udcflush_line.3in create mode 100644 oshmem/shmem/man/man3/shmem_wait.3in create mode 100644 oshmem/shmem/man/man3/shmem_wait_until.3in create mode 100644 oshmem/shmem/man/man3/shmemalign.3in create mode 100644 oshmem/shmem/man/man3/shrealloc.3in create mode 100644 oshmem/shmem/man/man3/start_pes.3in create mode 100644 oshmem/shmem/shmem_api_logger.h create mode 100644 oshmem/shmem/shmem_lock.h create mode 100644 oshmem/tools/Makefile.am create mode 100644 oshmem/tools/oshmem_info/Makefile.am create mode 100644 oshmem/tools/oshmem_info/help-oshmem-info.txt create mode 100644 oshmem/tools/oshmem_info/oshmem_info.1in create mode 100644 oshmem/tools/oshmem_info/oshmem_info.c create mode 100644 oshmem/tools/oshmem_info/oshmem_info.h create mode 100644 oshmem/tools/oshmem_info/param.c create mode 100644 oshmem/tools/wrappers/Makefile.am create mode 100644 oshmem/tools/wrappers/shmemcc-wrapper-data.txt.in create mode 100644 oshmem/tools/wrappers/shmemfort-wrapper-data.txt.in create mode 100644 oshmem/util/Makefile.am create mode 100644 oshmem/util/oshmem_util.c create mode 100644 oshmem/util/oshmem_util.h create mode 100644 test/Makefile.am create mode 100644 test/asm/Makefile.am create mode 100644 test/asm/atomic_barrier.c create mode 100644 test/asm/atomic_cmpset.c create mode 100644 test/asm/atomic_math.c create mode 100644 test/asm/atomic_spinlock.c create mode 100644 test/asm/run_tests create mode 100644 test/carto/carto-file create mode 100644 test/carto/carto_test.c create mode 100644 test/class/Makefile.am create mode 100644 test/class/ompi_rb_tree.c create mode 100644 test/class/opal_bitmap.c create mode 100644 test/class/opal_fifo.c create mode 100644 test/class/opal_hash_table.c create mode 100644 test/class/opal_lifo.c create mode 100644 test/class/opal_list.c create mode 100644 test/class/opal_pointer_array.c create mode 100644 test/class/opal_proc_table.c create mode 100644 test/class/opal_tree.c create mode 100644 test/class/opal_value_array.c create mode 100644 test/datatype/Makefile.am create mode 100644 test/datatype/checksum.c create mode 100644 test/datatype/ddt_lib.c create mode 100644 test/datatype/ddt_lib.h create mode 100644 test/datatype/ddt_pack.c create mode 100644 test/datatype/ddt_raw.c create mode 100644 test/datatype/ddt_test.c create mode 100644 test/datatype/external32.c create mode 100644 test/datatype/opal_datatype_test.c create mode 100644 test/datatype/opal_ddt_lib.c create mode 100644 test/datatype/opal_ddt_lib.h create mode 100644 test/datatype/position.c create mode 100644 test/datatype/position_noncontig.c create mode 100644 test/datatype/to_self.c create mode 100644 test/datatype/unpack_ooo.c create mode 100644 test/dss/Makefile.am create mode 100644 test/dss/dss_buffer.c create mode 100644 test/dss/dss_cmp.c create mode 100644 test/dss/dss_copy.c create mode 100644 test/dss/dss_payload.c create mode 100644 test/dss/dss_print.c create mode 100644 test/event/Makefile.am create mode 100644 test/event/event-test.c create mode 100644 test/event/signal-test.c create mode 100644 test/event/time-test.c create mode 100644 test/memchecker/Makefile.am create mode 100644 test/memchecker/irecv_init_check.c create mode 100644 test/memchecker/irecv_uninit_check.c create mode 100644 test/memchecker/non_blocking_recv_test.c create mode 100644 test/memchecker/non_blocking_send_test.c create mode 100644 test/monitoring/Makefile.am create mode 100644 test/monitoring/aggregate_profile.pl create mode 100644 test/monitoring/monitoring_prof.c create mode 100644 test/monitoring/monitoring_test.c create mode 100644 test/monitoring/profile2mat.pl create mode 100644 test/mpi/Makefile.am create mode 100644 test/mpi/environment/Makefile.am create mode 100644 test/mpi/environment/chello.c create mode 100755 test/mpi/environment/run_tests create mode 100755 test/mpi/run_tests create mode 100644 test/runtime/Makefile.am create mode 100644 test/runtime/README create mode 100644 test/runtime/opal_init_finalize.c create mode 100644 test/runtime/orte_init_finalize.c create mode 100644 test/runtime/sigchld.c create mode 100644 test/runtime/start_shut.c create mode 100644 test/support/Makefile.am create mode 100644 test/support/Makefile.options create mode 100644 test/support/support.c create mode 100644 test/support/support.h create mode 100644 test/threads/Makefile.am create mode 100644 test/threads/opal_condition.c create mode 100644 test/threads/opal_thread.c create mode 100644 test/util/Makefile.am create mode 100644 test/util/ompi_numtostr.c create mode 100644 test/util/opal_argv.c create mode 100644 test/util/opal_basename.c create mode 100644 test/util/opal_bit_ops.c create mode 100644 test/util/opal_error.c create mode 100644 test/util/opal_if.c create mode 100644 test/util/opal_os_create_dirpath.c create mode 100644 test/util/opal_os_path.c create mode 100644 test/util/opal_path_nfs.c create mode 100644 test/util/opal_timer.c create mode 100644 test/util/orte_session_dir.c create mode 100644 test/util/orte_universe_setup_file_io.c diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..4abbfb7c --- /dev/null +++ b/AUTHORS @@ -0,0 +1,338 @@ +Open MPI Authors +================ + +The following cumulative list contains the names and email addresses +of all individuals who have committed code to the Open MPI repository +(either directly or through a third party, such as through a +Github.com pull request). Note that these email addresses are not +guaranteed to be current; they are simply a unique indicator of the +individual who committed them. + +----- + +Abhishek Joshi, Broadcom + abhishek.joshi@broadcom.com +Abhishek Kulkarni, Indiana University + adkulkar@cs.indiana.edu +Adrian Knoth, Friedrich-Schiller-Universitat Jena + adi@minet.uni-jena.de +Adrian Reber, Hochschule Esslingen + adrian@lisas.de +Alejandro Vilches, Intel + alejandro.vilches@intel.com +Aleksey Senin, Mellanox + alekseys@mellanox.com +Alex Margolin, Mellanox + alex.margolin@mail.huji.ac.il +Alex Mikheev, Mellanox + alexm@mellanox.com +Alina Sklarevich, Mellanox + alinas@mellanox.com +Anandhi S Jayakumar, Intel + anandhi.s.jayakumar@intel.com +Andreas Knüpfer, Technische Universitaet Dresden + andreas.knuepfer@tu-dresden.de +Andrew Friedley, Indiana University, Sandia National Laboratory, Intel + afriedle@osl.iu.edu + andrew.friedley@intel.com +Andrew Lumsdaine, Indiana University + lums@cs.indiana.edu +Annapurna Dasari, Intel + annapurna.dasari@intel.com +Anya Tatashina, Sun + anya.tatashina@sun.com +Artem Polyakov, Individual, Mellanox + artpol84@gmail.com +Aurélien Bouteiller, University of Tennessee-Knoxville + bouteill@icl.utk.edu + darter4.nics.utk.edu +Avneesh Pant, QLogic + avneesh.pant@qlogic.com +Bert Wesarg, Technische Universitaet Dresden + bert.wesarg@tu-dresden.de +Bill D'Amico, Cisco + bdamico@cisco.com +Boris Karasev, Mellanox + karasev.b@gmail.com +Brad Benton, IBM, AMD + brad.benton@us.ibm.com +Brad Penoff, University of British Columbia + penoff@cs.ubc.ca +Brian Barrett, Indiana University, Los Alamos National Laboratory, Sandia National Laboratory + brbarret@open-mpi.org +Brice Goglin, INRIA + brice.goglin@inria.fr +Camille Coti, University of Tennessee-Knoxville, INRIA + ccoti@icl.utk.edu +Christian Bell, QLogic + christian.bell@qlogic.com +Christoph Niethammer, High Performance Computing Center, Stuttgart + niethammer@hlrs.de +Christopher Yeoh, IBM + cyeoh@au1.ibm.com +Craig E Rasmussen, Los Alamos National Laboratory, University of Oregon + rasmus@cas.uoregon.edu +Dan Lacher, Sun + dan.lacher@sun.com +Dave Goodell, Cisco + davidjgoodell@gmail.com + dgoodell@cisco.com +David Daniel, Los Alamos National Laboratory + ddd@lanl.gov +Denis Dimick, Los Alamos National Laboratory + dgdimick@lnal.gov +Devendar Bureddy, Mellanox + devendar@mellanox.com +Dimitar Pashov, Individual + d.pashov@gmail.com +Donald Kerr, Sun, Oracle + donald.kerr@oracle.com +Doron Shoham, Mellanox + dorons@mellanox.com +Edgar Gabriel, High Performance Computing Center, Stuttgart, University of Tennessee-Knoxville, University of Houston + gabriel@cs.uh.edu +Elena Elkina, Mellanox + elena.elkina89@gmail.com + elena.elkina@itseez.com +Ethan Mallove, Sun, Oracle + ethan.mallove@oracle.com +Eugene Loh, Sun, Oracle + eugene.loh@oracle.com +Federico Reghenzani, Individual + federico1.reghenzani@mail.polimi.it +Francois WELLENREITER, Individual + francois.wellenreiter@atos.net + wellen@free.fr +Gabriel Pichot, Individual + gabriel.pichot@gmail.com +Galen Shipman, Los Alamos National Laboratory + gshipman@lanl.gov +Geoffrey Paulsen, IBM + gpaulsen@us.ibm.com +George Bosilca, University of Tennessee-Knoxville + bosilca@eecs.utk.edu + bosilca@icl.utk.edu +Gilles Gouaillardet, Research Organization for Information Science and Technology + gilles.gouaillardet@iferc.org + gilles@rist.or.jp +Ginger Young, Los Alamos National Laboratory + gingery@lanl.gov +Gleb Natapov, Voltaire + gleb@voltaire.com +Gopal Santhanaraman, The Ohio State University + santhana@osu.edu +Graham Fagg, University of Tennessee-Knoxville + gef@icl.utk.edu +Greg Koenig, Oak Ridge National Laboratory + koenig@acm.org +Greg Watson, Los Alamos National Laboratory + gwatson@lanl.gov +Guillaume Papauré, Bull + guillaume.papaure@bull.net +Hadi Montakhabi, University of Houston + hmontakhabi@uh.edu +Howard Pritchard, Los Alamos National Laboratory + howardp@lanl.gov + hppritcha@gmail.com +Iain Bason, Sun, Oracle + iain.bason@oracle.com +Igor Ivanov, Mellanox + igor.ivanov.va@gmail.com + igor.ivanov@itseez.com +Igor Usarov, Mellanox + igoru@mellanox.com +Jeff Squyres, University of Indiana, Cisco + jeff@squyres.com + jsquyres@cisco.com +Jelena Pjesivac-Grbovic, University of Tennessee-Knoxville + pjesa@icl.iu.edu +Jithin Jose, Intel + jithin.jose@intel.com +John Westlund, Intel + john.a.westlund@intel.com +Jon Mason, OpenGrid Computing + jdmason@opengridcomputing.com +Jose Roman, Universitat Politecnica de Valencia + jroman@dsic.upv.es +Josh Hursey, Indiana University, Oak Ridge National Laboratory, Los Alamos National Laboratory, Lawrence Berkeley National Laboratory, University of Wisconsin-La Crosse, IBM + jhursey@us.ibm.com + jjhursey@open-mpi.org +Joshua Ladd, Mellanox + jladd.mlnx@gmail.com + joshual@mellanox.com +KAWASHIMA Takahiro, Fujistu + t-kawashima@jp.fujitsu.com +Karen Norteman, Sun + karen.norteman@sun.com +Karol Mroz, University of British Columbia + mroz.karol@gmail.com +Kenneth Matney, Oak Ridge National Laboratory + matneykdsr@ornl.gov +L. R. Rajeshnarayanan, Intel + l.r.rajeshnarayanan@intel.com +LANL OMPI Bot, Los Alamos National Laboratory + openmpihpp@gmail.com +Laura Casswell, Los Alamos National Laboratory + lcasswell@lanl.gov +Lenny Verkhovsky, Voltaire + lennyb@voltaire.com +Leobardo Ruiz Rountree, Individual + lruizrountree@gmail.com +Li-Ta Lo, Los Alamos National Laboratory + ollie@lanl.gov +MPI Team (bot), self + mpiteam@open-mpi.org +Mangala Jyothi Bhaskar, University of Houston + mjbhaskar@crill.cs.uh.edu + mjbhaskar@salmon.cs.uh.edu + mjbhaskar@uh.edu +Manjunath Gorentla Venkata, Oak Ridge National Laboratory + manjugv@ornl.gov +Mark Santcroos, Rutgers University + m.a.santcroos@amc.uva.nl + mas781@scarletmail.rutgers.edu +Mark Taylor, Los Alamos National Laboratory + mt@lanl.gov +Matias A Cabral, Intel + matias.a.cabral@intel.com +Matthias Jurenz, Technische Universitaet Dresden + matthias.jurenz@tu-dresden.de +Maximilien Levesque, Individual + maximilien.levesque@gmail.com +Mike Dubman, Mellanox + miked@mellanox.com +Mitch Sukalski, Sandia National Laboratory + mwsukal@ca.sandia.gov +Mohamad Chaarawi, University of Houston + mschaara@cs.uh.edu +Nadezhda Kogteva, Mellanox + nadezhda.kogteva@itseez.com + nadezhda@mngx-orion-01.dmz.e2e.mlnx +Nadia Derbey, Bull + nadia.derbey@bull.net +Nathan Hjelm, Los Alamos National Laboratory + hjelmn@cs.unm.edu + hjelmn@lanl.gov + hjelmn@me.com +Nathaniel Graham, Los Alamos National Laboratory + ngraham@lanl.gov + nrgraham23@gmail.com +Nick Papior Andersen, Individual + nickpapior@gmail.com +Nicolas Chevalier, Bull + nicolas.chevalier@bull.net +Nysal Jan K A, IBM + jnysal@gmail.com + jnysal@in.ibm.com +Orion Poplawski, Individual + orion@cora.nwra.com +Oscar Vega-Gisbert, Universitat Politecnica de Valencia + ovega@dsic.upv.es +Pak Lui, Sun + pak.lui@sun.com +Pascal Deveze, Bull + pascal.deveze@atos.net +Patrick Geoffray, Myricom + patrick@myri.com +Pavel Shamis, Mellanox, Oak Ridge National Laboratory + shamisp@ornl.gov +Pierre Lemarinier, University of Tennessee-Knoxville + lemarini@icl.utk.edu +Piotr Lesnicki, Bull + piotr.lesnicki@ext.bull.net +Prabhanjan Kambadur, Indiana University + pkambadu@osl.iu.edu +Raghavendra Pendyala, Intel + raghavendra.p.pendyala@intel.com +Rainer Keller, High Performance Computing Center, Stuttgart, Oak Ridge National Laboratory, Hochschule fuer Technik Stuttgart + rainer.keller@hft-stuttgart.de + rainer.keller@hlrs.de +Ralph Castain, Los Alamos National Laboratory, Cisco, Greenplum, Intel + rhc@open-mpi.org +Reese Faucette, Cisco + rfaucett@cisco.com +Rich Graham, Los Alamos National Laboratory, Oak Ridge National Laboratory, Mellanox + richardg@mellanox.com +Rob Awles, Los Alamos National Laboratory + rta@lanl.gov +Rob Latham, Argonne National Laboratory + robl@mcs.anl.gov +Rolf vandeVaart, Sun, Oracle, NVIDIA + rvandevaart@nvidia.com +Ron Brightwell, Sandia National Laboratory + rbbrigh@sandia.gov +Ryan Grant, Sandia National Laboratory + regrant233@gmail.com + regrant@sandia.gov +Sami Ayyorgun, Los Alamos National Laboratory + sami@lanl.gov +Samuel Gutierrez, Los Alamos National Laboratory + samuel@lanl.gov +Sayantan Sur, The Ohio State University + surs@osu.edu +Sharon Melamed, Voltaire + sharonm@voltaire.com +Shiqing Fan, High Performance Computing Center, Stuttgart + shiqing@hlrs.de +Steve Wise, OpenGrid Computing + swise@opengridcomputing.com +Sushant Sharma, Los Alamos National Laboratory + sushant@lanl.gov +Sven Stork, High Performance Computing Center, Stuttgart + stork@hlrs.de +Swen Boehm, Oak Ridge National Laboratory + sboehm@ornl.gov +Sylvain Jeaugey, Bull, NVIDIA + sjeaugey@nvidia.com + sylvain.jeaugey@bull.net +Teng Lin, Individual + teng.lin@gmail.com +Terry Dontje, Sun, Oracle + terry.dontje@oracle.com +Thananon Patinyasakdikul, Cisco, University of Tennessee-Knoxville + apatinya@cisco.com + tpatinya@utk.edu +Thara Angskun, University of Tennessee-Knoxville + angskun@cs.utk.edu +Thomas Herault, University of Tennessee-Knoxville + herault@icl.utk.edu +Tim Mattox, Indiana University, Cisco, Individual + timothy.mattox@engilitycorp.com + tmattox@gmail.com +Tim Prins, Indiana University, Los Alamos National Laboratory + tprins@lanl.gov +Tim Woodall, Los Alamos National Laboratory + twoodall@lanl.gov +Todd Kordenbrock, Sandia National Laboratory + thkgcode@gmail.com + thkorde@sandia.gov +Tom Naughton, Oak Ridge National Laboratory + naughtont@ornl.gov +Tomislav Janjusic, Mellanox + tomislavj@mngx-apl-01.mtl.labs.mlnx +Torsten Hoefler, Indiana University, Technische Universtaet Chemnitz + htor@osl.iu.edu +Valentin Petrov, Mellanox + valentinp@mellanox.com +Vasily Filipov, Mellanox + vasily@mellanox.com +Vishal Sahay, Indiana University + vsahay@osl.iu.edu +Vishwanath Venkatesan, University of Houston, Intel + vvenkates@gmail.com +Weikuan Yu, Los Alamos National Laboratory + yuw@lanl.gov +Wesley Bland, University of Tennessee-Knoxville + wbland@icl.utk.edu +William Throwe, Individual + wtt6@cornell.edu +Yael Dayan, Mellanox + yaeld@mellanox.com +Yevgeny Kliteynik, Mellanox + kliteyn@mellanox.co.il +Yohann Burette, Intel + yohann.burette@intel.com +Yossi Itigin, Mellanox + yosefe@mellanox.com +Zhi Ming Wang, IBM + wangzm@cn.ibm.com diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 00000000..1f19f0ad --- /dev/null +++ b/Doxyfile @@ -0,0 +1,1099 @@ +# Doxyfile 1.3.4 +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = Open MPI + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 0.1.1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doxygen + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, +# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en +# (Japanese with English messages), Korean, Norwegian, Polish, Portuguese, +# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will +# prepend the brief description of a member or function before the +# detailed description. Note: if both HIDE_UNDOC_MEMBERS and +# BRIEF_MEMBER_DESC are set to NO, the brief descriptions will be +# completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show +# all inherited members of a class in the documentation of that class +# as if those members were ordinary class members. Constructors, +# destructors and assignment operators of the base classes will not be +# shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of +# C sources only. Doxygen will then generate output that is more +# tailored for C. For instance, some of the names that are used will +# be different. The list of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of +# Java sources only. Doxygen will then generate output that is more +# tailored for Java. For instance, namespaces will be presented as +# packages, qualified scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a +# class will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = opal orte ompi + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc + +FILE_PATTERNS = *.c *.h *.cc *.dox + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = opal/event ompi/mca/io/romio + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are +# excluded from the input. + +EXCLUDE_SYMLINKS = YES + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = static-modules.h *config*.h ompi_stdint.h ltdl.h + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output dir. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = YES + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +#PAPER_TYPE = a4wide +PAPER_TYPE = letter + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimised for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assigments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = YES + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = DOXYGEN + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = doxygen/tagfile + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superceded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similiar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/HACKING b/HACKING new file mode 100644 index 00000000..473500aa --- /dev/null +++ b/HACKING @@ -0,0 +1,249 @@ +Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + University Research and Technology + Corporation. All rights reserved. +Copyright (c) 2004-2005 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. +Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + University of Stuttgart. All rights reserved. +Copyright (c) 2004-2005 The Regents of the University of California. + All rights reserved. +Copyright (c) 2008-2016 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2013 Intel, Inc. All rights reserved. +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + +Overview +======== + +This file is here for those who are building/exploring OMPI in its +source code form, most likely through a developer's tree (i.e., a +Git clone). + + +Developer Builds: Compiler Pickyness by Default +=============================================== + +If you are building Open MPI from a Git clone (i.e., there is a ".git" +directory in your build tree), the default build includes extra +compiler pickyness, which will result in more compiler warnings than +in non-developer builds. Getting these extra compiler warnings is +helpful to Open MPI developers in making the code base as clean as +possible. + +Developers can disable this picky-by-default behavior by using the +--disable-picky configure option. Also note that extra-picky compiles +do *not* happen automatically when you do a VPATH build (e.g., if +".git" is in your source tree, but not in your build tree). + +Prior versions of Open MPI would automatically activate a lot of +(performance-reducing) debugging code by default if ".git" was found +in your build tree. This is no longer true. You can manually enable +these (performance-reducing) debugging features in the Open MPI code +base with these configure options: + + --enable-debug + --enable-mem-debug + --enable-mem-profile + +NOTE: These options are really only relevant to those who are +developing Open MPI itself. They are not generally helpful for +debugging general MPI applications. + + +Use of GNU Autoconf, Automake, and Libtool (and m4) +=================================================== + +You need to read/care about this section *ONLY* if you are building +from a developer's tree (i.e., a Git clone of the Open MPI source +tree). If you have an Open MPI distribution tarball, the contents of +this section are optional -- you can (and probably should) skip +reading this section. + +If you are building Open MPI from a developer's tree, you must first +install fairly recent versions of the GNU tools Autoconf, Automake, +and Libtool (and possibly GNU m4, because recent versions of Autoconf +have specific GNU m4 version requirements). The specific versions +required depend on if you are using the Git master branch or a release +branch (and which release branch you are using). The specific +versions can be found here: + + http://www.open-mpi.org/source/building.php + +You can check what versions of the autotools you have installed with +the following: + +shell$ m4 --version +shell$ autoconf --version +shell$ automake --version +shell$ libtoolize --version + +Required version levels for all the OMPI releases can be found here: + +http://www.open-mpi.org/source/building.php + +To strengthen the above point: the core Open MPI developers typically +use very, very recent versions of the GNU tools. There are known bugs +in older versions of the GNU tools that Open MPI no longer compensates +for (it seemed senseless to indefinitely support patches for ancient +versions of Autoconf, for example). You *WILL* have problems if you +do not use recent versions of the GNU tools. + +If you need newer versions, you are *strongly* encouraged to heed the +following advice: + +NOTE: On MacOS/X, the default "libtool" program is different than the + GNU libtool. You must download and install the GNU version + (e.g., via MacPorts, Homebrew, or some other mechanism). + +1. Unless your OS distribution has easy-to-use binary installations, + the sources can be can be downloaded from: + + ftp://ftp.gnu.org/gnu/autoconf/ + ftp://ftp.gnu.org/gnu/automake/ + ftp://ftp.gnu.org/gnu/libtool/ + and if you need it: + ftp://ftp.gnu.org/gnu/m4/ + + NOTE: It is certainly easiest to download/build/install all four of + these tools together. But note that Open MPI has no specific m4 + requirements; it is only listed here because Autoconf requires + minimum versions of GNU m4. Hence, you may or may not *need* to + actually install a new version of GNU m4. That being said, if you + are confused or don't know, just install the latest GNU m4 with the + rest of the GNU Autotools and everything will work out fine. + +2. Build and install the tools in the following order: + + 2a. m4 + 2b. Autoconf + 2c. Automake + 2d. Libtool + +3. You MUST install the last three tools (Autoconf, Automake, Libtool) + into the same prefix directory. These three tools are somewhat + inter-related, and if they're going to be used together, they MUST + share a common installation prefix. + + You can install m4 anywhere as long as it can be found in the path; + it may be convenient to install it in the same prefix as the other + three. Or you can use any recent-enough m4 that is in your path. + + 3a. It is *strongly* encouraged that you do not install your new + versions over the OS-installed versions. This could cause + other things on your system to break. Instead, install into + $HOME/local, or /usr/local, or wherever else you tend to + install "local" kinds of software. + 3b. In doing so, be sure to prefix your $path with the directory + where they are installed. For example, if you install into + $HOME/local, you may want to edit your shell startup file + (.bashrc, .cshrc, .tcshrc, etc.) to have something like: + + # For bash/sh: + export PATH=$HOME/local/bin:$PATH + # For csh/tcsh: + set path = ($HOME/local/bin $path) + + 3c. Ensure to set your $path *BEFORE* you configure/build/install + the four packages. + +4. All four packages require two simple commands to build and + install (where PREFIX is the prefix discussed in 3, above). + + shell$ cd + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + shell$ cd + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + shell$ cd + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + shell$ cd + shell$ ./configure --prefix=PREFIX + shell$ make; make install + + --> If you are using the csh or tcsh shells, be sure to run the + "rehash" command after you install each package. + + m4, Autoconf and Automake build and install very quickly; Libtool will + take a minute or two. + +5. You can now run OMPI's top-level "autogen.pl" script. This script + will invoke the GNU Autoconf, Automake, and Libtool commands in the + proper order and setup to run OMPI's top-level "configure" script. + + Running autogen.pl may take a few minutes, depending on your + system. It's not very exciting to watch. :-) + + If you have a multi-processor system, enabling the multi-threaded + behavior in Automake 1.11 (or newer) can result in autogen.pl + running faster. Do this by setting the AUTOMAKE_JOBS environment + variable to the number of processors (threads) that you want it to + use before invoking autogen.pl. For example (you can again put + this in your shell startup files): + + # For bash/sh: + export AUTOMAKE_JOBS=4 + # For csh/tcsh: + set AUTOMAKE_JOBS 4 + + 5a. You generally need to run autogen.pl whenever the top-level + file "configure.ac" changes, or any files in the config/ or + /config/ directories change (these directories are + where a lot of "include" files for OMPI's configure script + live). + + 5b. You do *NOT* need to re-run autogen.pl if you modify a + Makefile.am. + +Use of Flex +=========== + +Flex is used during the compilation of a developer's checkout (it is +not used to build official distribution tarballs). Other flavors of +lex are *not* supported: given the choice of making parsing code +portable between all flavors of lex and doing more interesting work on +Open MPI, we greatly prefer the latter. + +Note that no testing has been performed to see what the minimum +version of Flex is required by Open MPI. We suggest that you use +v2.5.35 at the earliest. + +*** NOTE: Windows developer builds of Open MPI *require* Flex version +2.5.35. Specifically, we know that v2.5.35 works and 2.5.4a does not. +We have not tested to figure out exactly what the minimum required +flex version is on Windows; we suggest that you use 2.5.35 at the +earliest. It is for this reason that the +contrib/dist/make_dist_tarball script checks for a Windows-friendly +version of flex before continuing. + +For now, Open MPI will allow developer builds with Flex 2.5.4. This +is primarily motivated by the fact that RedHat/Centos 5 ships with +Flex 2.5.4. It is likely that someday Open MPI developer builds will +require Flex version >=2.5.35. + +Note that the flex-generated code generates some compiler warnings on +some platforms, but the warnings do not seem to be consistent or +uniform on all platforms, compilers, and flex versions. As such, we +have done little to try to remove those warnings. + +If you do not have Flex installed, it can be downloaded from the +following URL: + + http://flex.sourceforge.net/ diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..13ab723e --- /dev/null +++ b/INSTALL @@ -0,0 +1,101 @@ +Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + University Research and Technology + Corporation. All rights reserved. +Copyright (c) 2004-2005 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. +Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + University of Stuttgart. All rights reserved. +Copyright (c) 2004-2005 The Regents of the University of California. + All rights reserved. +Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + + +For More Information +==================== + +This file is a *very* short overview of building and installing Open +MPI, and building MPI applications. Much more information is +available on the Open MPI web site (e.g., see the FAQ section): + + http://www.open-mpi.org/ + + +Developer Builds +================ + +If you have checked out a DEVELOPER'S COPY of Open MPI (i.e., you +cloned from Git), you should read the HACKING file before attempting +to build Open MPI. You must then run: + +shell$ ./autogen.pl + +You will need very recent versions of GNU Autoconf, Automake, and +Libtool. If autogen.pl fails, read the HACKING file. If anything +else fails, read the HACKING file. Finally, we suggest reading the +HACKING file. + +*** NOTE: Developer's copies of Open MPI typically include a large +performance penalty at run-time because of extra debugging overhead. + + +User Builds +=========== + +Building Open MPI is typically a combination of running "configure" +and "make". Execute the following commands to install the Open MPI +system from within the directory at the top of the tree: + +shell$ ./configure --prefix=/where/to/install +[...lots of output...] +shell$ make all install + +If you need special access to install, then you can execute "make +all" as a user with write permissions in the build tree, and a +separate "make install" as a user with write permissions to the +install tree. + +Compiling support for various networks or other specific hardware may +require additional command ling flags when running configure. See the +README file for more details. Note that VPATH builds are fully +supported. For example: + +shell$ tar xf openmpi-X.Y.Z.tar.gz +shell$ cd openmpi-X.Y.Z +shell$ mkdir build +shell$ cd build +shell$ ../configure ...your options... +[...lots of output...] +shell$ make all install + +Parallel builds are also supported (although some versions of "make", +such as GNU make, will only use the first target listed on the command +line when executable parallel builds). For example (assume GNU make): + +shell$ make -j 4 all +[...lots of output...] +shell$ make install + +Parallel make is generally only helpful in the build phase (i.e., +"make all"); the installation process (i.e., "make install") is mostly +serial and does not benefit much from parallelization. + + +Compiling MPI Applications +========================== + +MPI applications should be compiled using the Open MPI "wrapper" +compilers: + +C programs: mpicc your-code.c +C++ programs: mpiCC your-code.cc or + mpic++ your-code.cc (for case-insensitive filesystems) +Fortran programs: mpifort your-code.f90 + +These compilers simply add various command line flags (such as -lmpi) +and invoke a back-end compiler; they are not compilers in themselves. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..0599a587 --- /dev/null +++ b/LICENSE @@ -0,0 +1,89 @@ +Most files in this release are marked with the copyrights of the +organizations who have edited them. The copyrights below are in no +particular order and generally reflect members of the Open MPI core +team who have contributed code to this release. The copyrights for +code used under license from other parties are included in the +corresponding files. + +Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana + University Research and Technology + Corporation. All rights reserved. +Copyright (c) 2004-2010 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. +Copyright (c) 2004-2010 High Performance Computing Center Stuttgart, + University of Stuttgart. All rights reserved. +Copyright (c) 2004-2008 The Regents of the University of California. + All rights reserved. +Copyright (c) 2006-2010 Los Alamos National Security, LLC. All rights + reserved. +Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved. +Copyright (c) 2006-2011 Sandia National Laboratories. All rights reserved. +Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved. + Use is subject to license terms. +Copyright (c) 2006-2010 The University of Houston. All rights reserved. +Copyright (c) 2006-2009 Myricom, Inc. All rights reserved. +Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved. +Copyright (c) 2007-2010 IBM Corporation. All rights reserved. +Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing + Centre, Federal Republic of Germany +Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany +Copyright (c) 2007 Evergrid, Inc. All rights reserved. +Copyright (c) 2008 Chelsio, Inc. All rights reserved. +Copyright (c) 2008-2009 Institut National de Recherche en + Informatique. All rights reserved. +Copyright (c) 2007 Lawrence Livermore National Security, LLC. + All rights reserved. +Copyright (c) 2007-2009 Mellanox Technologies. All rights reserved. +Copyright (c) 2006-2010 QLogic Corporation. All rights reserved. +Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved. +Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved. +Copyright (c) 2009 Bull SAS. All rights reserved. +Copyright (c) 2010 ARM ltd. All rights reserved. +Copyright (c) 2010-2011 Alex Brick . All rights reserved. +Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights + reserved. +Copyright (c) 2013-2016 Intel, Inc. All rights reserved. +Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved. + +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer listed + in this license in the documentation and/or other materials + provided with the distribution. + +- Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +The copyright holders provide no reassurances that the source code +provided does not infringe any patent, copyright, or any other +intellectual property rights of third parties. The copyright holders +disclaim any liability to any recipient for claims brought against +recipient by any third party for infringement of that parties +intellectual property rights. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..a4eba0a2 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,41 @@ +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2012-2015 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2014 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +SUBDIRS = config contrib $(MCA_PROJECT_SUBDIRS) test +EXTRA_DIST = README INSTALL VERSION Doxyfile LICENSE autogen.pl README.JAVA.txt + +include examples/Makefile.include + +dist-hook: + env LS_COLORS= sh "$(top_srcdir)/config/distscript.sh" "$(top_srcdir)" "$(distdir)" "$(OMPI_REPO_REV)" + +# Check for common symbols. Use a "-hook" to increase the odds that a +# developer will see it at the end of their installation process. +install-exec-hook: + -@if test -d "$(top_srcdir)/.git"; then \ + $(top_srcdir)/config/find_common_syms \ + --brief \ + --top_builddir=$(top_builddir) \ + --top_srcdir=$(top_srcdir) \ + --objext=$(OBJEXT); \ + fi + +ACLOCAL_AMFLAGS = -I config diff --git a/Makefile.ompi-rules b/Makefile.ompi-rules new file mode 100644 index 00000000..2a9cb2b7 --- /dev/null +++ b/Makefile.ompi-rules @@ -0,0 +1,68 @@ +# -*- makefile -*- +# Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +TRIM_OPTIONS= +if ! MAN_PAGE_BUILD_MPI_CXX_BINDINGS + TRIM_OPTIONS += --nocxx +endif +if ! MAN_PAGE_BUILD_MPIFH_BINDINGS + TRIM_OPTIONS += --nofortran +endif +if ! MAN_PAGE_BUILD_USEMPIF08_BINDINGS + TRIM_OPTIONS += --nof08 +endif + +.1in.1: + $(OMPI_V_GEN) $(top_srcdir)/ompi/mpi/man/make_manpage.pl \ + --package-name='@PACKAGE_NAME@' \ + --package-version='@PACKAGE_VERSION@' \ + --ompi-date='@OMPI_RELEASE_DATE@' \ + --opal-date='@OPAL_RELEASE_DATE@' \ + --orte-date='@ORTE_RELEASE_DATE@' \ + --input=$< \ + --output=$@ + +.3in.3: + $(OMPI_V_GEN) $(top_srcdir)/ompi/mpi/man/make_manpage.pl \ + --package-name='@PACKAGE_NAME@' \ + --package-version='@PACKAGE_VERSION@' \ + --ompi-date='@OMPI_RELEASE_DATE@' \ + --opal-date='@OPAL_RELEASE_DATE@' \ + --orte-date='@ORTE_RELEASE_DATE@' \ + $(TRIM_OPTIONS) \ + --input=$< \ + --output=$@ + +.7in.7: + $(OMPI_V_GEN) $(top_srcdir)/ompi/mpi/man/make_manpage.pl \ + --package-name='@PACKAGE_NAME@' \ + --package-version='@PACKAGE_VERSION@' \ + --ompi-date='@OMPI_RELEASE_DATE@' \ + --opal-date='@OPAL_RELEASE_DATE@' \ + --orte-date='@ORTE_RELEASE_DATE@' \ + --input=$< \ + --output=$@ + +# A little verbosity magic; "make" will show the terse output. "make +# V=1" will show the actual commands used (just like the other +# Automake-generated compilation/linker rules). +V=0 + +OMPI_V_LN_S = $(ompi__v_LN_S_$V) +ompi__v_LN_S_ = $(ompi__v_LN_S_$AM_DEFAULT_VERBOSITY) +ompi__v_LN_S_0 = @echo " LN_S " `basename $@`; + +OMPI_V_MKDIR = $(ompi__v_MKDIR_$V) +ompi__v_MKDIR_ = $(ompi__v_MKDIR_$AM_DEFAULT_VERBOSITY) +ompi__v_MKDIR_0 = @echo " MKDIR " $@; + +OMPI_V_GEN = $(ompi__v_GEN_$V) +ompi__v_GEN_ = $(ompi__v_GEN_$AM_DEFAULT_VERBOSITY) +ompi__v_GEN_0 = @echo " GENERATE" $@; diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..8c3315ad --- /dev/null +++ b/NEWS @@ -0,0 +1,3153 @@ +Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana + University Research and Technology + Corporation. All rights reserved. +Copyright (c) 2004-2006 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. +Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, + University of Stuttgart. All rights reserved. +Copyright (c) 2004-2006 The Regents of the University of California. + All rights reserved. +Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006 Voltaire, Inc. All rights reserved. +Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. + Use is subject to license terms. +Copyright (c) 2006-2016 Los Alamos National Security, LLC. All rights + reserved. +Copyright (c) 2010-2012 IBM Corporation. All rights reserved. +Copyright (c) 2012 Oak Ridge National Labs. All rights reserved. +Copyright (c) 2012 Sandia National Laboratories. All rights reserved. +Copyright (c) 2012 University of Houston. All rights reserved. +Copyright (c) 2013 NVIDIA Corporation. All rights reserved. +Copyright (c) 2013-2016 Intel, Inc. All rights reserved. +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + +=========================================================================== + +This file contains the main features as well as overviews of specific +bug fixes (and other actions) for each version of Open MPI since +version 1.0. + +As more fully described in the "Software Version Number" section in +the README file, Open MPI typically releases two separate version +series simultaneously. Since these series have different goals and +are semi-independent of each other, a single NEWS-worthy item may be +introduced into different series at different times. For example, +feature F was introduced in the vA.B series at version vA.B.C, and was +later introduced into the vX.Y series at vX.Y.Z. + +The first time feature F is released, the item will be listed in the +vA.B.C section, denoted as: + + (** also to appear: X.Y.Z) -- indicating that this item is also + likely to be included in future release + version vX.Y.Z. + +When vX.Y.Z is later released, the same NEWS-worthy item will also be +included in the vX.Y.Z section and be denoted as: + + (** also appeared: A.B.C) -- indicating that this item was previously + included in release version vA.B.C. + +Master (not on release branches yet) +------------------------------------ + +- ompi_info parsable output now escapes double quotes in values, and + also quotes values can contains colons. Thanks to Lev Givon for the + suggestion. +- CUDA-aware support can now handle GPUs within a node that do not + support CUDA IPC. Earlier versions would get error and abort. +- Do not build the MPI C++ bindings by default. They must be enabled + via --enable-mpi-cxx. +- Removed embedded VampirTrace. It is in maintenance mode since 2013. + Please consider Score-P (score-p.org) as an external replacement. + + +2.0.0 -- DATE +------ + + ********************************************************************** + * Open MPI is now fully MPI-3.1 compliant + ********************************************************************** + +- Enhancements to reduce the memory footprint for jobs at scale. A + new MCA parameter, "mpi_add_procs_cutoff", is available to set the + threshold for using this feature. +- Many enhancements to MPI RMA. Open MPI now maps MPI RMA operations + on to native RMA operations for those networks which support this + capability. +- The MPI C++ bindings -- which were removed from the MPI standard in + v3.0 -- are no longer built by default and will be removed in some + future version of Open MPI. Use the --enable-mpi-cxx-bindings + configure option to build the deprecated/removed MPI C++ bindings. +- ompi_info now shows all components, even if they do not have MCA + parameters. The prettyprint output now separates groups with a + dashed line. +- Add support for PMIx - Process Management Interface for Exascale. + Version 1.1.2 of PMIx is included internally in this release. +- Add support for PLFS file systems in Open MPI I/O. +- Add support for UCX transport. +- Improved support for MPI_THREAD_MULTIPLE (when configured with + --enable-mpi-thread-multiple). +- Simplify build process for Cray XC systems. Add support for + using native SLURM. +- Updated internal/embedded copies of third-part software: + - Update the internal copy of ROMIO to that which shipped in MPICH + 3.1.4. + - Update internal copy of libevent to v2.0.22. + - Update internal copy of hwloc to v1.11.2. +- Add a --tune mpirun command line option to simplify setting many + environment variables and MCA parameters. +- Add a new MCA parameter - + "opal_common_verbs_want_fork_support". This replaces the + "btl_openib_want_fork_support" parameter. +- Add a new MCA parameter "orte_default_dash_host" to offer an analogue + to the existing "orte_default_hostfile" MCA parameter. +- Add --with-platform-patches-dir configure option. +- Add --with-pmi-libdir configure option for environments that install + PMI libs in a non-default location. +- Add the ability to specify the number of desired slots in the mpirun + --host option. +- In environments where mpirun cannot automatically determine the + number of slots available (e.g., when using a hostfile that does not + specify "slots", or when using --host without specifying a ":N" + suffix to hostnames), mpirun now requires the use of "-np N" to + specify how many MPI processes to launch. +- Removed some legacy support: + - Removed support for OS X Leopard. + - Removed support for Cray XT systems. + - Removed VampirTrace. + - Removed support for Myrinet/MX. + - Removed legacy collective module:ML. + - Removed support for Alpha processors. + - Removed --enable-mpi-profiling configure option. +- Removed checkpoint/restart code due to loss of maintainer. :-( +- Numerous fixes/improvements to orte-dvm. Special thanks to Mark + Santcroos for his help. +- Silence a compiler warning in PSM MTL. Thanks to Adrian Reber for + reporting this. +- Replace use of alloca with malloc for certain datatype creation + functions. Thanks to Bogdan Sataric for reporting this. +- Fix use of MPI_LB and MPI_UB in creation of of certain MPI datatypes. + Thanks to Gus Correa for helping to fix this. +- Implement a workaround for a GNU Libtool problem. Thanks to Eric + Schnetter for reporting and fixing. +- Improve hcoll library detection in configure. Thanks to David + Shrader and Ake Sandgren for reporting this. +- Fix problems with XRC detection in OFED 3.12 and older releases. + Thanks to Paul Hargrove for his analysis of this problem. +- Update (non-standard/experimental) Java MPI interfaces to support + MPI-3.1 functionality. +- Fix an issue with MCA parameters for Java bindings. Thanks to + Takahiro Kawashima and Siegmar Gross for reporting this issue. +- Fix a problem when using persistent requests in the Java bindings. + Thanks to Nate Chambers for reporting. +- Fix problem with Java bindings on OX X 10.11. Thanks to Alexander + Daryin for reporting this issue. +- Fix a performance problem for large messages for Cray XC systems. + Thanks to Jerome Vienne for reporting this. +- Fix an issue with MPI_WIN_LOCK_ALL. Thanks to Thomas Jahns for + reporting. +- Fix an issue with passing a parameter to configure multiple times. + Thanks to QuesarVII for reporting and supplying a fix. +- Add support for ALPS resource allocation system on Cray CLE 5.2 and + later. Thanks to Mark Santcroos. +- Corrections to the HACKING file. Thanks to Maximilien Levesque. +- Fix an issue with user supplied reduction operator functions. + Thanks to Rupert Nash for reporting this. +- Fix an issue with an internal list management function. Thanks to + Adrian Reber for reporting this. +- Fix a problem with MPI-RMA PSCW epochs. Thanks to Berk Hess for + reporting this. +- Fix a problem in neighborhood collectives. Thanks to Lisandro + Dalcin for reporting. +- Add (Open MPI-specific) additional flavors to MPI_COMM_SPLIT_TYPE. + See MPI_Comm_split_type(3) for details. Thanks to Nick Andersen for + supplying this enhancement. +- Improve closing of file descriptors during the job launch phase. + Thanks to Piotr Lesnicki for reporting and providing this + enhancement. +- Fix a problem in MPI_GET_ACCUMULATE and MPI_RGET_ACCUMULATE when + using Portals4. Thanks to Nicolas Chevalier for reporting. +- Use correct include file for lstat prototype in ROMIO. Thanks to + William Throwe for finding and providing a fix. +- Add missing Fortran bindings for MPI_WIN_ALLOCATE. Thanks to Christoph + Niethammer for reporting and fixing. +- Fortran related fixes to handle Intel 2016 compiler. Thanks to + Fabrice Roy for reporting this. +- Fix a Fortran linkage issue. Thanks to Macro Atzeri for finding and + suggesting a fix. +- Fix problem with using BIND(C) for Fortran bindings with logical + parameters. Thanks to Paul Romano for reporting. +- Fix an issue with use of DL-related macros in opal library. Thanks to + Scott Atchley for finding this. +- Fix an issue with parsing mpirun command line options which contain + colons. Thanks to Lev Given for reporting. +- Fix a problem with Open MPI's package configury files. Thanks to + Christoph Junghans for reporting. +- Fix a typo in the MPI_INTERCOMM_MERGE man page. Thanks To Harald + Servat for reporting and correcting. +- Update man pages for non-blocking sends per MPI 3.1 standard. + Thanks to Alexander Pozdneev for reporting. +- Fix problem when compiling against PVFS2. Thanks to Dave Love for + reporting. +- Fix problems with MPI_NEIGHBOR_ALLTOALL{V,W}. Thanks to Willem + Vermin for reporting this issue. +- Fix various compilation problems on Cygwin. Thanks to Marco Atzeri + for supplying these fixes. +- Fix problem with resizing of subarray and darray data types. Thanks + to Keith Bennett and Dan Garmann for reporting. +- Fix a problem with MPI_COMBINER_RESIZED. Thanks to James Ramsey for + the report. +- Fix an hwloc binding issue. Thanks to Ben Menadue for reporting. +- Fix a problem with the shared memory (sm) BTL. Thanks to Peter Wind + for the report. +- Fixes for heterogeneous support. Thanks to Siegmar Gross for reporting. +- Fix a problem with memchecker. Thanks to Clinton Simpson for reporting. +- Fix a problem with MPI_UNWEIGHTED in topology functions. Thanks to + Jun Kudo for reporting. +- Fix problem with a MCA parameter base filesystem types. Thanks to + Siegmar Gross for reporting. +- Fix a problem with some windows info argument types. Thanks to + Alastair McKinstry for reporting. + + +1.10.4 - 01 Sept 2016 +------ + +- Fix assembler support for MIPS +- Improve memory handling for temp buffers in collectives +- Fix [all]reduce with non-zero lower bound datatypes + Thanks Hristo Iliev for the report +- Fix non-standard ddt handling. Thanks Yuki Matsumoto for the report +- Various libnbc fixes. Thanks Yuki Matsumoto for the report +- Fix typos in request RMA bindings for Fortran. Thanks to @alazzaro + and @vondele for the assist +- Various bug fixes and enhancements to collective support +- Fix predefined types mapping in hcoll +- Revive the coll/sync component to resolve unexpected message issues + during tight loops across collectives +- Fix typo in wrapper compiler for Fortran static builds + + +1.10.3 - 15 June 2016 +------ + +- Minor manpage cleanups +- Implement atomic support in OSHMEM/UCX +- Fix support of MPI_COMBINER_RESIZED. Thanks to James Ramsey + for the report +- Fix computation of #cpus when --use-hwthread-cpus is used +- Add entry points for Allgatherv, iAllgatherv, Reduce, and iReduce + for the HCOLL library +- Fix an HCOLL integration bug that could signal completion of request + while still being worked +- Fix computation of cores when SMT is enabled. Thanks to Ben Menadue + for the report +- Various USNIC fixes +- Create a datafile in the per-proc directory in order to make it + unique per communicator. Thanks to Peter Wind for the report +- Fix zero-size malloc in one-sided pt-to-pt code. Thanks to Lisandro + Dalcin for the report +- Fix MPI_Get_address when passed MPI_BOTTOM to not return an error. + Thanks to Lisandro Dalcin for the report +- Fix MPI_TYPE_SET_ATTR with NULL value. Thanks to Lisandro Dalcin for + the report +- Fix various Fortran08 binding issues +- Fix memchecker no-data case. Thanks to Clinton Stimpson for the report +- Fix CUDA support under OS-X +- Fix various OFI/MTL integration issues +- Add MPI_T man pages +- Fix one-sided pt-to-pt issue by preventing communication from happening + before a target enters a fence, even in the no-precede case +- Fix a bug that disabled Totalview for MPMD use-case +- Correctly support MPI_UNWEIGHTED in topo-graph-neighbors. Thanks to + Jun Kudo for the report +- Fix singleton operations under SLURM when PMI2 is enabled +- Do not use MPI_IN_PLACE in neighborhood collectives for non-blocking + collectives (libnbc). Thanks to Jun Kudo for the report +- Silence autogen deprecation warnings for newer versions of Perl +- Do not return MPI_ERR_PENDING from collectives +- Use type int* for MPI_WIN_DISP_UNIT, MPI_WIN_CREATE_FLAVOR, and MPI_WIN_MODEL. + Thanks to Alastair McKinstry for the report +- Fix register_datarep stub function in IO/OMPIO. Thanks to Eric + Chamberland for the report +- Fix a bus error on MPI_WIN_[POST,START] in the shared memory one-sided component +- Add several missing MPI_WIN_FLAVOR constants to the Fortran support +- Enable connecting processes from different subnets using the openib BTL +- Fix bug in basic/barrier algorithm in OSHMEM +- Correct process binding for the --map-by node case +- Include support for subnet-to-subnet routing over InfiniBand networks +- Fix usnic resource check +- AUTHORS: Fix an errant reference to Subversion IDs +- Fix affinity for MPMD jobs running under LSF +- Fix many Fortran binding bugs +- Fix `MPI_IN_PLACE`-related bugs + + +1.10.2: 26 Jan 2016 +------------------- + + ********************************************************************** + * OSHMEM is now 1.2 compliant + ********************************************************************** + +- Fix NBC_Copy for legitimate zero-size messages +- Fix multiple bugs in OSHMEM +- Correctly handle mpirun --host @ +- Centralize two MCA params to avoid duplication between OMPI and + OSHMEM layers: opal_abort_delay and opal_abort_print_stack +- Add support for Fujitsu compilers +- Add UCX support for OMPI and OSHMEM +- Correctly handle oversubscription when not given directives + to permit it. Thanks to @ammore1 for reporting it +- Fix rpm spec file to not include the /usr directory +- Add Intel HFI1 default parameters for the openib BTL +- Resolve symbol conflicts in the PSM2 library +- Add ability to empty the rgpusm cache when full if requested +- Fix another libtool bug when -L requires a space between it + and the path. Thanks to Eric Schnetter for the patch. +- Add support for OSHMEM v1.2 APIs +- Improve efficiency of oshmem_preconnect_all algorithm +- Fix bug in buffered sends support +- Fix double free in edge case of mpirun. Thanks to @jsharpe for + the patch +- Multiple one-sided support fixes +- Fix integer overflow in the tuned "reduce" collective when + using buffers larger than INT_MAX in size +- Fix parse of user environment variables in mpirun. Thanks to + Stefano Garzarella for the patch +- Performance improvements in PSM2 support +- Fix NBS iBarrier for inter-communicators +- Fix bug in vader BTL during finalize +- Improved configure support for Fortran compilers +- Fix rank_file mapper to support default --slot-set. Thanks + to Matt Thompson for reporting it +- Update MPI_Testsome man page. Thanks to Eric Schnetter for + the suggestion +- Fix missing resize of the returned type for subarray and + darray types. Thanks to Keith Bennett and Dan Garmann for + reporting it +- Fix Java support on OSX 10.11. Thanks to Alexander Daryin + for reporting the problem +- Fix some compilation issues on Solaris 11.2. Thanks to + Paul Hargrove for his continued help in such areas + + +1.10.1: 4 Nov 2015 +------------------ + +- Workaround an optimization problem with gcc compilers >= 4.9.2 that + causes problems with memory registration, and forced + mpi_leave_pinned to default to 0 (i.e., off). Thanks to @oere for + the fix. +- Fix use of MPI_LB and MPI_UB in subarray and darray datatypes. + Thanks to Gus Correa and Dimitar Pashov for pointing out the issue. +- Minor updates to mpi_show_mpi_alloc_mem_leaks and + ompi_debug_show_handle_leaks functionality. +- Fix segv when invoking non-blocking reductions with a user-defined + operation. Thanks to Rupert Nash and Georg Geiser for identifying + the issue. +- No longer probe for PCI topology on Solaris (unless running as root). +- Fix for Intel Parallel Studio 2016 ifort partial support of the + !GCC$ pragma. Thanks to Fabrice Roy for reporting the problem. +- Bunches of Coverity / static analysis fixes. +- Fixed ROMIO to look for lstat in . Thanks to William + Throwe for submitting the patch both upstream and to Open MPI. +- Fixed minor memory leak when attempting to open plugins. +- Fixed type in MPI_IBARRIER C prototype. Thanks to Harald Servat for + reporting the issue. +- Add missing man pages for MPI_WIN_CREATE_DYNAMIC, MPI_WIN_ATTACH, + MPI_WIN_DETACH, MPI_WIN_ALLOCATE, MPI_WIN_ALLOCATE_SHARED. +- When mpirun-launching new applications, only close file descriptors + that are actually open (resulting in a faster launch in some + environments). +- Fix "test ==" issues in Open MPI's configure script. Thank to Kevin + Buckley for pointing out the issue. +- Fix performance issue in usnic BTL: ensure progress thread is + throttled back to not aggressively steal CPU cycles. +- Fix cache line size detection on POWER architectures. +- Add missing #include in a few places. Thanks to Orion Poplawski for + supplying the patch. +- When OpenSHMEM building is disabled, no longer install its header + files, help files, or man pages. Add man pages for oshrun, oshcc, + and oshfort. +- Fix mpi_f08 implementations of MPI_COMM_SET_INFO, and profiling + versions of MPI_BUFFER_DETACH, MPI_WIN_ALLOCATE, + MPI_WIN_ALLOCATE_SHARED, MPI_WTICK, and MPI_WTIME. +- Add orte_rmaps_dist_device MCA param, allowing users to map near a + specific device. +- Various updates/fixes to the openib BTL. +- Add missing defaults for the Mellanox ConnectX 3 card to the openib BTL. +- Minor bug fixes in the OFI MTL. +- Various updates to Mellanox's MXM, hcoll, and FCA components. +- Add OpenSHMEM man pages. Thanks to Tony Curtis for sharing the man + pages files from openshmem.org. +- Add missing "const" attributes to MPI_COMPARE_AND_SWAP, + MPI_FETCH_AND_OP, MPI_RACCUMULATE, and MPI_WIN_DETACH prototypes. + Thanks to Michael Knobloch and Takahiro Kawashima for bringing this + to our attention. +- Fix linking issues on some platforms (e.g., SLES 12). +- Fix hang on some corner cases when MPI applications abort. +- Add missing options to mpirun man page. Thanks to Daniel Letai + for bringing this to our attention. +- Add new --with-platform-patches-dir configure option +- Adjust relative selection priorities to ensure that MTL + support is favored over BTL support when both are available +- Use CUDA IPC for all sized messages for performance + + +1.10.0: 25 Aug 2015 +------------------- + +** NOTE: The v1.10.0 release marks the transition to Open MPI's new +** version numbering scheme. The v1.10.x release series is based on +** the v1.8.x series, but with a few new features. v2.x will be the +** next series after the v1.10.x series, and complete the transition +** to the new version numbering scheme. See README for more details +** on the new versioning scheme. +** +** NOTE: In accordance with OMPI version numbering, the v1.10 is *not* +** API compatible with the v1.8 release series. + +- Added libfabric support (see README for more details): + - usNIC BTL updated to use libfabric. + - Added OFI MTL (usable with PSM in libfabric v1.1.0). +- Added Intel Omni-Path support via new PSM2 MTL. +- Added "yalla" PML for faster MXM support. +- Removed support for MX +- Added persistent distributed virtual machine (pDVM) support for fast + workflow executions. +- Fixed typo in GCC inline assembly introduced in Open MPI v1.8.8. + Thanks to Paul Hargrove for pointing out the issue. +- Add missing man pages for MPI_Win_get|set_info(3). +- Ensure that session directories are cleaned up at the end of a run. +- Fixed linking issues on some OSs where symbols of dependent + libraries are not automatically publicly available. +- Improve hcoll and fca configury library detection. Thanks to David + Shrader for helping track down the issue. +- Removed the LAMA mapper (for use in setting affinity). Its + functionality has been largely superseded by other mpirun CLI + options. +- CUDA: Made the asynchronous copy mode be the default. +- Fix a malloc(0) warning in MPI_IREDUCE_SCATTER_BLOCK. Thanks to + Lisandro Dalcin for reporting the issue. +- Fix typo in MPI_Scatter(3) man page. Thanks to Akshay Venkatesh for + noticing the mistake. +- Add rudimentary protection from TCP port scanners. +- Fix typo in Open MPI error handling. Thanks to Åke Sandgren for + pointing out the error. +- Increased the performance of the CM PML (i.e., the Portals, PSM, + PSM2, MXM, and OFI transports). +- Restored visibility of blocking send requests in message queue + debuggers (e.g., TotalView, DDT). +- Fixed obscure IPv6-related bug in the TCP BTL. +- Add support for the "no_locks" MPI_Info key for one-sided + functionality. +- Fixed ibv_fork support for verbs-based networks. +- Fixed a variety of small bugs in OpenSHMEM. +- Fixed MXM configure with additional CPPFLAGS and LDFLAGS. Thanks to + David Shrader for the patch. +- Fixed incorrect memalign threshhold in the openib BTL. Thanks to + Xavier Besseron for pointing out the issue. + + +1.8.8: 5 Aug 2015 +----------------- + +- Fix a segfault in MPI_FINALIZE with the PSM MTL. +- Fix mpi_f08 sentinels (e.g., MPI_STATUS_IGNORE) handling. +- Set some additional MXM default values for OSHMEM. +- Fix an invalid memory access in MPI_MRECV and MPI_IMRECV. +- Include two fixes that were mistakenly left out of the official + v1.8.7 tarball: + - Fixed MPI_WIN_POST and MPI_WIN_START for zero-size messages + - Protect the OOB TCP ports from segfaulting when accessed by port + scanners + + +1.8.7: 15 Jul 2015 +------------------ + +** NOTE: v1.8.7 technically breaks ABI with prior versions +** in the 1.8 series because it repairs two incorrect API +** signatures. However, users will only need to recompile +** if they were using those functions - which they couldn't +** have been, because the signatures were wrong :-) + +- Plugged a memory leak that impacted blocking sends +- Fixed incorrect declaration for MPI_T_pvar_get_index and added + missing return code MPI_T_INVALID_NAME. +- Fixed an uninitialized variable in PMI2 support +- Added new vendor part id for Mellanox ConnectX4-LX +- Fixed NBC_Copy for legitimate zero-size messages +- Fixed MPI_Win_post and MPI_Win_start for zero-size messages +- Protect the OOB ports from segfaulting when accessed by port scanners +- Fixed several Fortran typos +- Fixed configure detection of XRC support +- Fixed support for highly heterogeneous systems to avoid + memory corruption when printing out the bindings + +1.8.6: 17 Jun 2015 +------------------ + +- Fixed memory leak on Mac OS-X exposed by TCP keepalive +- Fixed keepalive support to ensure that daemon/node failure + results in complete job cleanup +- Update Java binding support +- Fixed MPI_THREAD_MULTIPLE bug in vader shared memory BTL +- Fixed issue during shutdown when CUDA initialization wasn't complete +- Fixed orted environment when no prefix given +- Fixed trivial typo in MPI_Neighbor_allgather manpage +- Fixed tree-spawn support for sh and ksh shells +- Several data type fixes +- Fixed IPv6 support bug +- Cleaned up an unlikely build issue +- Fixed PMI2 process map parsing for cyclic mappings +- Fixed memalign threshold in openib BTL +- Fixed debugger access to message queues for blocking send/recv + + +1.8.5: 5 May 2015 +----------------- + +- Fixed configure problems in some cases when using an external hwloc + installation. Thanks to Erick Schnetter for reporting the error and + helping track down the source of the problem. +- Fixed linker error on OS X when using the clang compiler. Thanks to + Erick Schnetter for reporting the error and helping track down the + source of the problem. +- Fixed MPI_THREAD_MULTIPLE deadlock error in the vader BTL. Thanks + to Thomas Klimpel for reporting the issue. +- Fixed several Valgrind warnings. Thanks for Lisandro Dalcin for + contributing a patch fixing some one-sided code paths. +- Fixed version compatibility test in OOB that broke ABI within the + 1.8 series. NOTE: this will not resolve the problem between pre-1.8.5 + versions, but will fix it going forward. +- Fix some issues related to running on Intel Xeon Phi coprocessors. +- Opportunistically switch away from using GNU Libtool's libltdl + library when possible (by default). +- Fix some VampirTrace errors. Thanks to Paul Hargrove for reporting + the issues. +- Correct default binding patterns when --use-hwthread-cpus was + specified and nprocs <= 2. +- Fix warnings about -finline-functions when compiling with clang. +- Updated the embedded hwloc with several bug fixes, including the + "duplicate Lhwloc1 symbol" that multiple users reported on some + platforms. +- Do not error when mpirun is invoked with with default bindings + (i.e., no binding was specified), and one or more nodes do not + support bindings. Thanks to Annu Desari for pointing out the + problem. +- Let root invoke "mpirun --version" to check the version without + printing the "Don't run as root!" warnings. Thanks to Robert McLay + for the suggestion. +- Fixed several bugs in OpenSHMEM support. +- Extended vader shared memory support to 32-bit architectures. +- Fix handling of very large datatypes. Thanks to Bogdan Sataric for + the bug report. +- Fixed a bug in handling subarray MPI datatypes, and a bug when using + MPI_LB and MPI_UB. Thanks to Gus Correa for pointing out the issue. +- Restore user-settable bandwidth and latency PML MCA variables. +- Multiple bug fixes for cleanup during MPI_FINALIZE in unusual + situations. +- Added support for TCP keepalive signals to ensure timely termination + when sockets between daemons cannot be created (e.g., due to a + firewall). +- Added MCA parameter to allow full use of a SLURM allocation when + started from a tool (supports LLNL debugger). +- Fixed several bugs in the configure logic for PMI and hwloc. +- Fixed incorrect interface index in TCP communications setup. Thanks + to Mark Kettenis for spotting the problem and providing a patch. +- Fixed MPI_IREDUCE_SCATTER with single-process communicators when + MPI_IN_PLACE was not used. +- Added XRC support for OFED v3.12 and higher. +- Various updates and bug fixes to the Mellanox hcoll collective + support. +- Fix problems with Fortran compilers that did not support + REAL*16/COMPLEX*32 types. Thanks to Orion Poplawski for identifying + the issue. +- Fixed problem with rpath/runpath support in pkg-config files. + Thanks to Christoph Junghans for notifying us of the issue. +- Man page fixes: + - Removed erroneous "color" discussion from MPI_COMM_SPLIT_TYPE. + Thanks to Erick Schnetter for spotting the outdated text. + - Fixed prototypes for MPI_IBARRIER. Thanks to Maximilian for + finding the issue. + - Updated docs about buffer usage in non-blocking communications. + Thanks to Alexander Pozdneev for citing the outdated text. + - Added documentation about the 'ompi_unique' MPI_Info key with + MPI_PUBLISH_NAME. + - Fixed typo in MPI_INTERCOMM_MERGE. Thanks to Harald Servat for + noticing and sending a patch. + - Updated configure paths in HACKING. Thanks to Maximilien Levesque + for the fix. + - Fixed Fortran typo in MPI_WIN_LOCK_ALL. Thanks to Thomas Jahns + for pointing out the issue. +- Fixed a number of MPI one-sided bugs. +- Fixed MPI_COMM_SPAWN when invoked from a singleton job. +- Fixed a number of minor issues with CUDA support, including + registering of shared memory and supporting reduction support for + GPU buffers. +- Improved support for building OMPI on Cray platforms. +- Fixed performance regression introduced by the inadvertent default + enabling of MPI_THREAD_MULTIPLE support. + + +1.8.4: 19 Dec 2014 +------------------ + +- Fix MPI_SIZEOF; now available in mpif.h for modern Fortran compilers + (see README for more details). Also fixed various compiler/linker + errors. +- Fixed inadvertant Fortran ABI break between v1.8.1 and v1.8.2 in the + mpi interface module when compiled with gfortran >= v4.9. +- Fix various MPI_THREAD_MULTIPLE issues in the TCP BTL. +- mpirun no longer requires the --hetero-nodes switch; it will + automatically detect when running in heterogeneous scenarios. +- Update LSF support, to include revamped affinity functionality. +- Update embedded hwloc to v1.9.1. +- Fixed max registerable memory computation in the openib BTL. +- Updated error message when debuggers are unable to find various + symbols/types to be more clear. Thanks to Dave Love for raising the + issue. +- Added proper support for LSF and PBS/Torque libraries in static builds. +- Rankfiles now support physical processor IDs. +- Fixed potential hang in MPI_ABORT. +- Fixed problems with the PSM MTL and "re-connect" scenarios, such as + MPI_INTERCOMM_CREATE. +- Fix MPI_IREDUCE_SCATTER with a single process. +- Fix (rare) race condition in stdout/stderr funneling to mpirun where + some trailing output could get lost when a process terminated. +- Removed inadvertent change that set --enable-mpi-thread-multiple "on" + by default, thus impacting performance for non-threaded apps. +- Significantly reduced startup time by optimizing internal hash table + implementation. +- Fixed OS X linking with the Fortran mpi module when used with + gfortran >= 4.9. Thanks to Github user yafshar for raising the + issue. +- Fixed memory leak on Cygwin platforms. Thanks for Marco Atzeri for + reporting the issue. +- Fixed seg fault in neighborhood collectives when the degree of the + topology is higher than the communicator size. Thanks to Lisandro + Dalcin for reporting the issue. +- Fixed segfault in neighborhood collectives under certain use-cases. +- Fixed various issues regarding Solaris support. Thanks to Siegmar + Gross for patiently identifying all the issues. +- Fixed PMI configure tests for certain Slurm installation patterns. +- Fixed param registration issue in Java bindings. Thanks to Takahiro + Kawashima and Siegmar Gross for identifying the issue. +- Several man page fixes. +- Silence several warnings and close some memory leaks (more remain, + but it's better than it was). +- Re-enabled the use of CMA and knem in the shared memory BTL. +- Updated mpirun manpage to correctly explain new map/rank/binding options. +- Fixed MPI_IALLGATHER problem with intercommunicators. Thanks for + Takahiro Kawashima for the patch. +- Numerous updates and performance improvements to OpenSHMEM. +- Turned off message coalescing in the openib BTL until a proper fix + for that capability can be provided (tentatively expected for 1.8.5) +- Fix a bug in iof output that dates back to the dinosaurs which would + output extra bytes if the system was very heavily loaded +- Fix a bug where specifying mca_component_show_load_errors=0 could + cause ompi_info to segfault +- Updated valgrind suppression file + + +1.8.3: 26 Sep 2014 +------------------ + +- Fixed application abort bug to ensure that MPI_Abort exits appropriately + and returns the provided exit status +- Fixed some alignment (not all) issues identified by Clang +- Allow CUDA-aware to work with nonblocking collectives. Forces packing to + happen when using GPU buffers. +- Fixed configure test issue with Intel 2015 Fortran compiler +- Fixed some PGI-related errors +- Provide better help message when encountering a firewall +- Fixed MCA parameter quoting to protect multi-word params and params + that contain special characters +- Improved the bind-to help message to clarify the defaults +- Add new MPI-3.1 tools interface +- Several performance optimizations and memory leak cleanups +- Turn off the coll/ml plugin unless specifically requested as it + remains in an experimental state +- Fix LSF support by adding required libraries for the latest LSF + releases. Thanks to Joshua Randal for supplying the initial + patches. + + +1.8.2: 25 Aug 2014 +------------------ + +- Fix auto-wireup of OOB, allowing ORTE to automatically + test all available NICs +- "Un-deprecate" pernode, npernode, and npersocket options + by popular demand +- Add missing Fortran bindings for MPI_WIN_LOCK_ALL, + MPI_WIN_UNLOCK_ALL, and MPI_WIN_SYNC. +- Fix cascading/over-quoting in some cases with the rsh/ssh-based + launcher. Thanks to multiple users for raising the issue. +- Properly add support for gfortran 4.9 ignore TKR pragma (it was + erroneously only partially added in v1.7.5). Thanks to Marcus + Daniels for raising the issue. +- Update/improve help messages in the usnic BTL. +- Resolve a race condition in MPI_Abort. +- Fix obscure cases where static linking from wrapper compilers would + fail. +- Clarify the configure --help message about when OpenSHMEM is + enabled/disabled by default. Thanks to Paul Hargrove for the + suggestion. +- Align pages properly where relevant. Thanks to Paul Hargrove for + identifying the issue. +- Various compiler warning and minor fixes for OpenBSD, FreeBSD, and + Solaris/SPARC. Thanks to Paul Hargrove for the patches. +- Properly pass function pointers from Fortran to C in the mpi_f08 + module, thereby now supporting gfortran 4.9. Thanks to Tobias + Burnus for assistance and testing with this issue. +- Improve support for Cray CLE 5. +- Fix mpirun regression: ensure exit status is non-zero if mpirun is + terminated due to signal. +- Improved CUDA efficiency of asynchronous copies. +- Fix to parameter type in MPI_Type_indexed.3. Thanks to Bastian + Beischer for reporting the mistake. +- Fix NUMA distance calculations in the openib BTL. +- Decrease time required to shut down mpirun at the end of a job. +- More RMA fixes. +- More hostfile fixes from Tetsuya Mishima. +- Fix darray issue where UB was not computed correctly. +- Fix mpi_f08 parameter name for MPI_GET_LIBRARY_VERSION. Thanks to + Junchao Zhang for pointing out the issue. +- Ensure mpirun aborts properly when unable to map processes in + scheduled environments. +- Ensure that MPI RMA error codes show up properly. Thanks to + Lisandro Dalcin for reporting the issue. +- Minor bug fixes and improvements to the bash and zsh mpirun + autocompletion scripts. +- Fix sequential mpirun process mapper. Thanks to Bill Chen for + reporting the issue. +- Correct SLURM stdout/stderr redirection. +- Added missing portals 4 files. +- Performance improvements for blocking sends and receives. +- Lots of cleanup to the ml collective component +- Added new Java methods to provide full MPI coverage +- Many OSHMEM cleanups +- Prevent comm_spawn from automatically launching a VM across + all available nodes +- Close many memory leaks to achieve valgrind-clean operation +- Better handling of TCP connection discovery for mismatched networks + where we don't have a direct 1:1 subnet match between nodes +- Prevent segfault when OMPI info tools are used in pipes and user + exits one step of that pipe before completing output + + +1.8.1: 23 Apr 2014 +------------------ + +- Fix for critical bug: mpirun removed files (but not directories) + from / when run as root. Thanks to Jay Fenlason and Orion Poplawski + for bringing the issue to our attention and helping identify the + fix. + + +1.8: 31 Mar 2014 +---------------- + +- Commit upstream ROMIO fix for mixed NFS+local filesystem environments. +- Several fixes for MPI-3 one-sided support. For example, + arbitrary-length datatypes are now supported. +- Add config support for the Mellanox ConnectX 4 card. +- Add missing MPI_COMM_GET|SET_INFO functions, and missing + MPI_WEIGHTS_EMPTY and MPI_ERR_RMA_SHARED constants. Thanks to + Lisandro Dalcin for pointing out the issue. +- Update some help messages in OSHMEM, the usnic BTL, the TCP BTL, and + ORTE, and update documentation about ompi_info's --level option. +- Fix some compiler warnings. +- Ensure that ORTE daemons are not bound to a single processor + if TaskAffinity is set on by default in Slurm. Thanks to Artem Polyakov + for identifying the problem and providing a patch + + +1.7.5 20 Mar 2014 +----------------- + + ********************************************************************** + * Open MPI is now fully MPI-3.0 compliant + ********************************************************************** + +- Add Linux OpenSHMEM support built on top of Open MPI's MPI + layer. Thanks to Mellanox for contributing this new feature. +- Allow restricting ORTE daemons to specific cores using the + orte_daemon_cores MCA param. +- Ensure to properly set "locality" flags for processes launched via + MPI dynamic functions such as MPI_COMM_SPAWN. +- Fix MPI_GRAPH_CREATE when nnodes is smaller than the size of the old + communicator. +- usnic BTL now supports underlying UDP transport. +- usnic BTL now checks for common connectivty errors at first send to + a remote server. +- Minor scalability improvements in the usnic BTL. +- ompi_info now lists whether the Java MPI bindings are available or not. +- MPI-3: mpi.h and the Fortran interfaces now report MPI_VERSION==3 + and MPI_SUBVERSION==0. +- MPI-3: Added support for new RMA functions and functionality. +- Fix MPI_Info "const buglet. Thanks to Orion Poplawski for + identifying the issue. +- Multiple fixes to mapping/binding options. Thanks to Tetsuya Mishima + for his assistance. +- Multiple fixes for normal and abnormal process termination, + including singleton MPI_Abort and ensuring to kill entire process + groups when abnormally terminating a job. +- Fix DESTDIR install for javadocs. Thanks to Orion Poplawski for + pointing out the issue. +- Various performance improvements for the MPI Java bindings. +- OMPI now uses its own internal random number generator and will not + perturb srand() and friends. +- Some cleanups for Cygwin builds. Thanks to Marco Atzeri for the + patches. +- Add a new collective component (coll/ml) that provides substantially + improved performance. It is still experimental, and requires + setting coll_ml_priority > 0 to become active. +- Add version check during startup to ensure you are using the same + version of Open MPI on all nodes in a job. +- Significantly improved the performance of MPI_DIMS_CREATE for large + values. Thanks to Andreas Schäfer for the contribution. +- Removed ASYNCHRONOUS keyword from the "ignore TKR" mpi_f08 module. +- Deprecated the following mpirun options: + --bynode, --bycore, --byslot: replaced with --map-by node|core|slot. + --npernode, --npersocket: replaced with --map-by ppr:N:node and + --map-by ppr:N:socket, respectively +- Pick NFS "infinitely stale" fix from ROMIO upstream. +- Various PMI2 fixes and extension to support broader range of mappings. +- Improve launch performance at large scale. +- Add support for PBS/Torque environments that set environment + variables to indicate the number of slots available on each nodes. + Set the ras_tm_smp MCA parameter to "1" to enable this mode. +- Add new, more scalable endpoint exchange (commonly called "modex") + method that only exchanges endpoint data on a per-peer basis + on first message. Not all transports have been updated to use + this feature. Set the rte_orte_direct_modex parameter to "1" + to enable this mode. + + +1.7.4: 5 Feb 2014 +----------------- + + ********************************************************************** + * CRITICAL CHANGE + * + * As of release 1.7.4, OpenMPI's default mapping, ranking, and binding + * settings have changed: + * + * Mapping: + * if #procs <= 2, default to map-by core + * if #procs > 2, default to map-by socket + * Ranking: + * if default mapping is used, then default to rank-by slot + * if map-by is given, then default to rank-by , + * where is whatever object we mapped against + * Binding: + * default to bind-to core + * + * Users can override any of these settings individually using the + * corresponding MCA parameter. Note that multi-threaded applications + * in particular may want to override at least the binding default + * to allow threads to use multiple cores. + ********************************************************************** + +- Restore version number output in "ompi_info --all". +- Various bug fixes for the mpi_f08 Fortran bindings. +- Fix ROMIO compile error with Lustre 2.4. Thanks to Adam Moody for + reporting the issue. +- Various fixes for 32 bit platforms. +- Add ability to selectively disable building the mpi or mpi_f08 + module. See the README file for details. +- Fix MX MTL finalization issue. +- Fix ROMIO issue when opening a file with MPI_MODE_EXCL. +- Fix PowerPC and MIPS assembly issues. +- Various fixes to the hcoll and FCA collective offload modules. +- Prevent integer overflow when creating datatypes. Thanks to + original patch from Gilles Gouaillardet. +- Port some upstream hwloc fixes to Open MPI's embedded copy for + working around buggy NUMA node cpusets and including mising header + files. Thanks to Jeff Becker and Paul Hargrove for reporting the + issues. +- Fix recursive invocation issues in the MXM MTL. +- Various bug fixes to the new MCA parameter back-end system. +- Have the posix fbtl module link against -laio on NetBSD platforms. + Thanks to Paul Hargrove for noticing the issue. +- Various updates and fixes to network filesystem detection to support + more operating systems. +- Add gfortran v4.9 "ignore TKR" syntax to the mpi Fortran module. +- Various compiler fixes for several BSD-based platforms. Thanks to + Paul Hargrove for reporting the issues. +- Fix when MPI_COMM_SPAWN[_MULTIPLE] is used on oversubscribed + systems. +- Change the output from --report bindings to simply state that a + process is not bound, instead of reporting that it is bound to all + processors. +- Per MPI-3.0 guidance, remove support for all MPI subroutines with + choice buffers from the TKR-based mpi Fortran module. Thanks to Jed + Brown for raising the issue. +- Only allow the usnic BTL to build on 64 bit platforms. +- Various bug fixes to SLURM support, to include ensuring proper + exiting on abnormal termination. +- Ensure that MPI_COMM_SPAWN[_MULTIPLE] jobs get the same mapping + directives that were used with mpirun. +- Fixed the application of TCP_NODELAY. +- Change the TCP BTL to not warn if a non-existent interface is + ignored. +- Restored the "--bycore" mpirun option for backwards compatibility. +- Fixed debugger attach functionality. Thanks to Ashley Pittman for + reporting the issue and suggesting the fix. +- Fixed faulty MPI_IBCAST when invoked on a communicator with only + one process. +- Add new Mellanox device IDs to the openib BTL. +- Progress towards cleaning up various internal memory leaks as + reported by Valgrind. +- Fixed some annoying flex-generated warnings that have been there for + years. Thanks to Tom Fogal for the initial patch. +- Support user-provided environment variables via the "env" info key + to MPI_COMM_SPAWN[_MULTIPLE]. Thanks to Tom Fogal for the feature + request. +- Fix uninitialized variable in MPI_DIST_GRAPH_CREATE. +- Fix a variety of memory errors on SPARC platforms. Thanks to + Siegmar Gross for reporting and testing all the issues. +- Remove Solaris threads support. When building on Solaris, pthreads + will be used. +- Correctly handle the convertor internal stack for persistent + receives. Thanks to Guillaume Gouaillardet for identifying the + problem. +- Add support for using an external libevent via --with-libevent. See + the README for more details. +- Various OMPIO updates and fixes. +- Add support for the MPIEXEC_TIMEOUT environment variable. If set, + mpirun will terminate the job after this many seconds. +- Update the internal copy of ROMIO to that which shipped in MPICH + 3.0.4. +- Various performance tweaks and improvements in the usnic BTL, + including now reporting MPI_T performance variables for each usnic + device. +- Fix to not access send datatypes for non-root processes with + MPI_ISCATTER[V] and MPI_IGATHER[V]. Thanks to Pierre Jolivet for + supplying the initial patch. +- Update VampirTrace to 5.14.4.9. +- Fix ptmalloc2 hook disable when used with ummunotify. +- Change the default connection manager for the openib BTL to be based + on UD verbs data exchanges instead of ORTE OOB data exchanges. +- Fix Fortran compile error when compiling with 8-byte INTEGERs and + 4-byte ints. +- Fix C++11 issue identified by Jeremiah Willcock. +- Many changes, updates, and bug fixes to the ORTE run-time layer. +- Correctly handle MPI_REDUCE_SCATTER with recvcounts of 0. +- Update man pages for MPI-3, and add some missing man pages for + MPI-2.x functions. +- Updated mpi_f08 module in accordance with post-MPI-3.0 errata which + basically removed BIND(C) from all interfaces. +- Fixed MPI_IN_PLACE detection for MPI_SCATTER[V] in Fortran + routines. Thanks to Charles Gerlach for identifying the issue. +- Added support for routable RoCE to the openib BTL. +- Update embedded hwloc to v1.7.2. +- ErrMgr framework redesigned to better support fault tolerance development + activities. See the following RFC for details: + http://www.open-mpi.org/community/lists/devel/2010/03/7589.php +- Added database framework to OPAL and changed all modex operations + to flow thru it, also included additional system info in the + available data +- Added staged state machine to support sequential work flows +- Added distributed file system support for accessing files across + nodes that do not have networked file systems +- Extended filem framework to support scalable pre-positioning of + files for use by applications, adding new "raw" component that + transmits files across the daemon network +- Native Windows support has been removed. A cygwin package is + available from that group for Windows-based use. +- Added new MPI Java bindings. See the Javadocs for more details on + the API. +- Wrapper compilers now add rpath support by default to generated + executables on systems that support it. This behavior can be + disabled via --disable-wrapper-rpath. See note in README about ABI + issues when using rpath in MPI applications. +- Added a new parallel I/O component and multiple new frameworks to + support parallel I/O operations. +- Fixed MPI_STATUS_SIZE Fortran issue when used with 8-byte Fortran + INTEGERs and 4-byte C ints. Since this issue affects ABI, it is + only enabled if Open MPI is configured with + --enable-abi-breaking-fortran-status-i8-fix. Thanks to Jim Parker + for supplying the initial patch. +- Add support for Intel Phi SCIF transport. +- For CUDA-aware MPI configured with CUDA 6.0, use new pointer + attribute to avoid extra synchronization in stream 0 when using + CUDA IPC between GPUs on the same node. +- For CUDA-aware MPI configured with CUDA 6.0, compile in support + of GPU Direct RDMA in openib BTL to improve small message latency. +- Updated ROMIO from MPICH v3.0.4. +- MPI-3: Added support for remaining non-blocking collectives. +- MPI-3: Added support for neighborhood collectives. +- MPI-3: Updated C bindings with consistent use of []. +- MPI-3: Added the const keyword to read-only buffers. +- MPI-3: Added support for non-blocking communicator duplication. +- MPI-3: Added support for non-collective communicator creation. + + +1.7.3: 17 Oct 2013 +------------------ + +- Make CUDA-aware support dynamically load libcuda.so so CUDA-aware + MPI library can run on systems without CUDA software. +- Fix various issues with dynamic processes and intercommunicator + operations under Torque. Thanks to Suraj Prabhakaran for reporting + the problem. +- Enable support for the Mellanox MXM2 library by default. +- Improve support for Portals 4. +- Various Solaris fixes. Many thanks to Siegmar Gross for his + incredible patience in reporting all the issues. +- MPI-2.2: Add reduction support for MPI_C_*COMPLEX and MPI::*COMPLEX. +- Fixed internal accounting when openpty() fails. Thanks to Michal + Peclo for reporting the issue and providing a patch. +- Fixed too-large memory consumption in XRC mode of the openib BTL. + Thanks to Alexey Ryzhikh for the patch. +- Add bozo check for negative np values to mpirun to prevent a + deadlock. Thanks to Upinder Malhi for identifying the issue. +- Fixed MPI_IS_THREAD_MAIN behavior. Thanks to Lisandro Dalcin for + pointing out the problem. +- Various rankfile fixes. +- Fix functionality over iWARP devices. +- Various memory and performance optimizations and tweaks. +- Fix MPI_Cancel issue identified by Fujitsu. +- Add missing support for MPI_Get_address in the "use mpi" TKR + implementation. Thanks to Hugo Gagnon for identifying the issue. +- MPI-3: Add support for MPI_Count. +- MPI-2.2: Add missing MPI_IN_PLACE support for MPI_ALLTOALL. +- Added new usnic BTL to support the Cisco usNIC device. +- Minor VampirTrace update to 5.14.4.4. +- Removed support for ancient OS X systems (i.e., prior to 10.5). +- Fixed obscure packing/unpacking datatype bug. Thanks to Takahiro + Kawashima for identifying the issue. +- Add run-time support for PMI2 environments. +- Update openib BTL default parameters to include support for Mellanox + ConnectX3-Pro devices. +- Update libevent to v2.0.21. +- "ompi_info --param TYPE PLUGIN" now only shows a small number of MCA + parameters by default. Add "--level 9" or "--all" to see *all* MCA + parameters. See README for more details. +- Add support for asynchronous CUDA-aware copies. +- Add support for Mellanox MPI collective operation offload via the + "hcoll" library. +- MPI-3: Add support for the MPI_T interface. Open MPI's MCA + parameters are now accessible via the MPI_T control variable + interface. Support has been added for a small number of MPI_T + performance variables. +- Add Gentoo memory hooks override. Thanks to Justin Bronder for the + patch. +- Added new "mindist" process mapper, allowing placement of processes + via PCI locality information reported by the BIOS. +- MPI-2.2: Add support for MPI_Dist_graph functionality. +- Enable generic, client-side support for PMI2 implementations. Can + be leveraged by any resource manager that implements PMI2; e.g. SLURM, + versions 2.6 and higher. + +1.7.2: 26 Jun 2013 +------------------ + +- Major VampirTrace update to 5.14.4.2. + (** also appeared: 1.6.5) +- Fix to set flag==1 when MPI_IPROBE is called with MPI_PROC_NULL. + (** also appeared: 1.6.5) +- Set the Intel Phi device to be ignored by default by the openib BTL. + (** also appeared: 1.6.5) +- Decrease the internal memory storage used by intrinsic MPI datatypes + for Fortran types. Thanks to Takahiro Kawashima for the initial + patch. + (** also appeared: 1.6.5) +- Fix total registered memory calculation for Mellanox ConnectIB and + OFED 2.0. + (** also appeared: 1.6.5) +- Fix possible data corruption in the MXM MTL component. + (** also appeared: 1.6.5) +- Remove extraneous -L from hwloc's embedding. Thanks to Stefan + Friedel for reporting the issue. + (** also appeared: 1.6.5) +- Fix contiguous datatype memory check. Thanks to Eric Chamberland + for reporting the issue. + (** also appeared: 1.6.5) +- Make the openib BTL more friendly to ignoring verbs devices that are + not RC-capable. + (** also appeared: 1.6.5) +- Fix some MPI datatype engine issues. Thanks to Thomas Jahns for + reporting the issue. + (** also appeared: 1.6.5) +- Add INI information for Chelsio T5 device. + (** also appeared: 1.6.5) +- Integrate MXM STREAM support for MPI_ISEND and MPI_IRECV, and other + minor MXM fixes. + (** also appeared: 1.6.5) +- Fix to not show amorphous "MPI was already finalized" error when + failing to MPI_File_close an open file. Thanks to Brian Smith for + reporting the issue. + (** also appeared: 1.6.5) +- Add a distance-based mapping component to find the socket "closest" + to the PCI bus. +- Fix an error that caused epoll to automatically be disabled + in libevent. +- Upgrade hwloc to 1.5.2. +- *Really* fixed XRC compile issue in Open Fabrics support. +- Fix MXM connection establishment flow. +- Fixed parallel debugger ability to attach to MPI jobs. +- Fixed some minor memory leaks. +- Fixed datatype corruption issue when combining datatypes of specific + formats. +- Added Location Aware Mapping Algorithm (LAMA) mapping component. +- Fixes for MPI_STATUS handling in corner cases. +- Add a distance-based mapping component to find the socket "closest" + to the PCI bus. + + +1.7.1: 16 Apr 2013 +------------------ + +- Fixed compile error when --without-memory-manager was specified + on Linux +- Fixed XRC compile issue in Open Fabrics support. + + +1.7: 1 Apr 2013 +--------------- + +- Added MPI-3 functionality: + - MPI_GET_LIBRARY_VERSION + - Matched probe + - MPI_TYPE_CREATE_HINDEXED_BLOCK + - Non-blocking collectives + - MPI_INFO_ENV support + - Fortran '08 bindings (see below) +- Dropped support for checkpoint/restart due to loss of maintainer :-( +- Enabled compile-time warning of deprecated MPI functions by default + (in supported compilers). +- Revamped Fortran MPI bindings (see the README for details): + - "mpifort" is now the preferred wrapper compiler for Fortran + - Added "use mpi_f08" bindings (for compilers that support it) + - Added better "use mpi" support (for compilers that support it) + - Removed incorrect MPI_SCATTERV interface from "mpi" module that + was added in the 1.5.x series for ABI reasons. +- Lots of VampirTrace upgrades and fixes; upgrade to v5.14.3. +- Modified process affinity system to provide warning when bindings + result in being "bound to all", which is equivalent to not being + bound. +- Removed maffinity, paffinity, and carto frameworks (and associated + MCA params). +- Upgraded to hwloc v1.5.1. +- Added performance improvements to the OpenIB (OpenFabrics) BTL. +- Made malloc hooks more friendly to IO interprosers. Thanks to the + bug report and suggested fix from Darshan maintainer Phil Carns. +- Added support for the DMTCP checkpoint/restart system. +- Added support for the Cray uGNI interconnect. +- Fixed header file problems on OpenBSD. +- Fixed issue with MPI_TYPE_CREATE_F90_REAL. +- Wrapper compilers now explicitly list/link all Open MPI libraries if + they detect static linking CLI arguments. +- Open MPI now requires a C99 compiler to build. Please upgrade your + C compiler if you do not have a C99-compliant compiler. +- Fix MPI_GET_PROCESSOR_NAME Fortran binding to set ierr properly. + Thanks to LANL for spotting the error. +- Many MXM and FCA updates. +- Fixed erroneous free of putenv'ed string that showed up in Valgrind + reports. +- Fixed MPI_IN_PLACE case for MPI_ALLGATHER. +- Fixed a bug that prevented MCA params from being forwarded to + daemons upon launch. +- Fixed issues with VT and CUDA --with-cuda[-libdir] configuration CLI + parameters. +- Entirely new implementation of many MPI collective routines focused + on better performance. +- Revamped autogen / build system. +- Add new sensor framework to ORTE that includes modules for detecting + stalled applications and processes that consume too much memory. +- Added new state machine framework to ORTE that converts ORTE into an + event-driven state machine using the event library. +- Added a new MCA parameter (ess_base_stream_buffering) that allows the user + to override the system default for buffering of stdout/stderr streams + (via setvbuf). Parameter is not visible via ompi_info. +- Revamped the launch system to allow consideration of node hardware + in assigning process locations and bindings. +- Added the -novm option to preserve the prior launch behavior. +- Revamped the process mapping system to utilize node hardware by adding + new map-by, rank-by, and bind-to cmd line options. +- Added new MCA parameter to provide protection against IO forwarding + backlog. +- Dropped support for native Windows due to loss of maintainers. :-( +- Added a new parallel I/O component and multiple new frameworks to + support parallel I/O operations. +- Fix typo in orte_setup_hadoop.m4. Thanks to Aleksej Saushev for + reporting it +- Fix a very old error in opal_path_access(). Thanks to Marco Atzeri + for chasing it down. + + +1.6.6: Not released +------------------- + +- Prevent integer overflow in datatype creation. Thanks to Gilles + Gouaillardet for identifying the problem and providing a preliminary + version of the patch. +- Ensure help-opal-hwloc-base.txt is included in distribution + tarballs. Thanks to Gilles Gouaillardet for supplying the patch. +- Correctly handle the invalid status for NULL and inactive requests. + Thanks to KAWASHIMA Takahiro for submitting the initial patch. +- Fixed MPI_STATUS_SIZE Fortran issue when used with 8-byte Fortran + INTEGERs and 4-byte C ints. Since this issue affects ABI, it is + only enabled if Open MPI is configured with + --enable-abi-breaking-fortran-status-i8-fix. Thanks to Jim Parker + for supplying the initial patch. +- Fix datatype issue for sending from the middle of non-contiguous + data. +- Fixed failure error with pty support. Thanks to Michal Pecio for + the patch. +- Fixed debugger support for direct-launched jobs. +- Fix MPI_IS_THREAD_MAIN to return the correct value. Thanks to + Lisandro Dalcin for pointing out the issue. +- Update VT to 5.14.4.4: + - Fix C++-11 issue. + - Fix support for building RPMs on Fedora with CUDA libraries. +- Add openib part number for ConnectX3-Pro HCA. +- Ensure to check that all resolved IP addresses are local. +- Fix MPI_COMM_SPAWN via rsh when mpirun is on a different server. +- Add Gentoo "sandbox" memory hooks override. + + +1.6.5: 26 Jun 2013 +------------------ + +- Updated default SRQ parameters for the openib BTL. + (** also to appear: 1.7.2) +- Major VampirTrace update to 5.14.4.2. + (** also to appear: 1.7.2) +- Fix to set flag==1 when MPI_IPROBE is called with MPI_PROC_NULL. + (** also to appear: 1.7.2) +- Set the Intel Phi device to be ignored by default by the openib BTL. + (** also to appear: 1.7.2) +- Decrease the internal memory storage used by intrinsic MPI datatypes + for Fortran types. Thanks to Takahiro Kawashima for the initial + patch. + (** also to appear: 1.7.2) +- Fix total registered memory calculation for Mellanox ConnectIB and + OFED 2.0. + (** also to appear: 1.7.2) +- Fix possible data corruption in the MXM MTL component. + (** also to appear: 1.7.2) +- Remove extraneous -L from hwloc's embedding. Thanks to Stefan + Friedel for reporting the issue. + (** also to appear: 1.7.2) +- Fix contiguous datatype memory check. Thanks to Eric Chamberland + for reporting the issue. + (** also to appear: 1.7.2) +- Make the openib BTL more friendly to ignoring verbs devices that are + not RC-capable. + (** also to appear: 1.7.2) +- Fix some MPI datatype engine issues. Thanks to Thomas Jahns for + reporting the issue. + (** also to appear: 1.7.2) +- Add INI information for Chelsio T5 device. + (** also to appear: 1.7.2) +- Integrate MXM STREAM support for MPI_ISEND and MPI_IRECV, and other + minor MXM fixes. + (** also to appear: 1.7.2) +- Improved alignment for OpenFabrics buffers. +- Fix to not show amorphous "MPI was already finalized" error when + failing to MPI_File_close an open file. Thanks to Brian Smith for + reporting the issue. + (** also to appear: 1.7.2) + + +1.6.4: 21 Feb 2013 +------------------ + +- Fix Cygwin shared memory and debugger plugin support. Thanks to + Marco Atzeri for reporting the issue and providing initial patches. +- Fix to obtaining the correct available nodes when a rankfile is + providing the allocation. Thanks to Siegmar Gross for reporting the + problem. +- Fix process binding issue on Solaris. Thanks to Siegmar Gross for + reporting the problem. +- Updates for MXM 2.0. +- Major VT update to 5.14.2.3. +- Fixed F77 constants for Cygwin/Cmake build. +- Fix a linker error when configuring --without-hwloc. +- Automatically provide compiler flags that compile properly on some + types of ARM systems. +- Fix slot_list behavior when multiple sockets are specified. Thanks + to Siegmar Gross for reporting the problem. +- Fixed memory leak in one-sided operations. Thanks to Victor + Vysotskiy for letting us know about this one. +- Added performance improvements to the OpenIB (OpenFabrics) BTL. +- Improved error message when process affinity fails. +- Fixed MPI_MINLOC on man pages for MPI_REDUCE(_LOCAL). Thanks to Jed + Brown for noticing the problem and supplying a fix. +- Made malloc hooks more friendly to IO interprosers. Thanks to the + bug report and suggested fix from Darshan maintainer Phil Carns. +- Restored ability to direct launch under SLURM without PMI support. +- Fixed MPI datatype issues on OpenBSD. +- Major VT update to 5.14.2.3. +- Support FCA v3.0+. +- Fixed header file problems on OpenBSD. +- Fixed issue with MPI_TYPE_CREATE_F90_REAL. +- Fix an issue with using external libltdl installations. Thanks to + opolawski for identifying the problem. +- Fixed MPI_IN_PLACE case for MPI_ALLGATHER for FCA. +- Allow SLURM PMI support to look in lib64 directories. Thanks to + Guillaume Papaure for the patch. +- Restore "use mpi" ABI compatibility with the rest of the 1.5/1.6 + series (except for v1.6.3, where it was accidentally broken). +- Fix a very old error in opal_path_access(). Thanks to Marco Atzeri + for chasing it down. + + +1.6.3: 30 Oct 2012 +------------------ + +- Fix mpirun --launch-agent behavior when a prefix is specified. + Thanks to Reuti for identifying the issue. +- Fixed memchecker configury. +- Brought over some compiler warning squashes from the development trunk. +- Fix spawning from a singleton to multiple hosts when the "add-host" + MPI_Info key is used. Thanks to Brian Budge for pointing out the + problem. +- Add Mellanox ConnextIB IDs and max inline value. +- Fix rankfile when no -np is given. +- FreeBSD detection improvement. Thanks to Brooks Davis for the + patch. +- Removed TCP warnings on Windows. +- Improved collective algorithm selection for very large messages. +- Fix PSM MTL affinity settings. +- Fix issue with MPI_OP_COMMUTATIVE in the mpif.h bindings. Thanks to + Ake Sandgren for providing a patch to fix the issue. +- Fix issue with MPI_SIZEOF when using CHARACTER and LOGICAL types in + the mpi module. Thanks to Ake Sandgren for providing a patch to fix + the issue. + + +1.6.2: 25 Sep 2012 +------------------ + +- Fix issue with MX MTL. Thanks to Doug Eadline for raising the issue. +- Fix singleton MPI_COMM_SPAWN when the result job spans multiple nodes. +- Fix MXM hang, and update for latest version of MXM. +- Update to support Mellanox FCA 2.5. +- Fix startup hang for large jobs. +- Ensure MPI_TESTANY / MPI_WAITANY properly set the empty status when + count==0. +- Fix MPI_CART_SUB behavior of not copying periods to the new + communicator properly. Thanks to John Craske for the bug report. +- Add btl_openib_abort_not_enough_reg_mem MCA parameter to cause Open + MPI to abort MPI jobs if there is not enough registered memory + available on the system (vs. just printing a warning). Thanks to + Brock Palen for raising the issue. +- Minor fix to Fortran MPI_INFO_GET: only copy a value back to the + user's buffer if the flag is .TRUE. +- Fix VampirTrace compilation issue with the PGI compiler suite. + + +1.6.1: 22 Aug 2012 +------------------ + +- A bunch of changes to eliminate hangs on OpenFabrics-based networks. + Users with Mellanox hardware are ***STRONGLY ENCOURAGED*** to check + their registered memory kernel module settings to ensure that the OS + will allow registering more than 8GB of memory. See this FAQ item + for details: + + http://www.open-mpi.org/faq/?category=openfabrics#ib-low-reg-mem + + - Fall back to send/receive semantics if registered memory is + unavilable for RDMA. + - Fix two fragment leaks when registered memory is exhausted. + - Hueristically determine how much registered memory is available + and warn if it's significantly less than all of RAM. + - Artifically limit the amount of registered memory each MPI process + can use to about 1/Nth to total registered memory available. + - Improve error messages when events occur that are likely due to + unexpected registered memory exhaustion. + +- Fix double semicolon error in the C++ in . Thanks to John + Foster for pointing out the issue. +- Allow -Xclang to be specified multiple times in CFLAGS. Thanks to + P. Martin for raising the issue. +- Break up a giant "print *" statement in the ABI-preserving incorrect + MPI_SCATTER interface in the "large" Fortran "mpi" module. Thanks + to Juan Escobar for the initial patch. +- Switch the MPI_ALLTOALLV default algorithm to a pairwise exchange. +- Increase the openib BTL default CQ length to handle more types of + OpenFabrics devices. +- Lots of VampirTrace fixes; upgrade to v5.13.0.4. +- Map MPI_2INTEGER to underlying MPI_INTEGERs, not MPI_INTs. +- Ensure that the OMPI version number is toleant of handling spaces. + Thanks to dragonboy for identifying the issue. +- Fixed IN parameter marking on Fortran "mpi" module + MPI_COMM_TEST_INTER interface. +- Various MXM improvements. +- Make the output of "mpirun --report-bindings" much more friendly / + human-readable. +- Properly handle MPI_COMPLEX8|16|32. +- More fixes for mpirun's processor affinity options (--bind-to-core + and friends). +- Use aligned memory for OpenFabrics registered memory. +- Multiple fixes for parameter checking in MPI_ALLGATHERV, + MPI_REDUCE_SCATTER, MPI_SCATTERV, and MPI_GATHERV. Thanks to the + mpi4py community (Bennet Fauber, Lisandro Dalcin, Jonathan Dursi). +- Fixed file positioning overflows in MPI_FILE_GET_POSITION, + MPI_FILE_GET_POSITION_SHARED, FILE_GET_SIZE, FILE_GET_VIEW. +- Removed the broken --cpu-set mpirun option. +- Fix cleanup of MPI errorcodes. Thanks to Alexey Bayduraev for the + patch. +- Fix default hostfile location. Thanks to Götz Waschk for noticing + the issue. +- Improve several error messages. + + +1.6: 14 May 2012 +---------------- + +- Fix some process affinity issues. When binding a process, Open MPI + will now bind to all available hyperthreads in a core (or socket, + depending on the binding options specified). + --> Note that "mpirun --bind-to-socket ..." does not work on POWER6- + and POWER7-based systems with some Linux kernel versions. See + the FAQ on the Open MPI web site for more information. +- Add support for ARM5 and ARM6 (in addition to the existing ARM7 + support). Thanks to Evan Clinton for the patch. +- Minor Mellanox MXM fixes. +- Properly detect FDR10, FDR, and EDR OpenFabrics devices. +- Minor fixes to the mpirun(1) and MPI_Comm_create(3) man pages. +- Prevent segv if COMM_SPAWN_MULTIPLE fails. Thanks to Fujitsu for + the patch. +- Disable interposed memory management in fakeroot environments. This + fixes a problem in some build environments. +- Minor hwloc updates. +- Array versions of MPI_TEST and MPI_WAIT with a count==0 will now + return immediately with MPI_SUCCESS. Thanks to Jeremiah Willcock + for the suggestion. +- Update VampirTrace to v5.12.2. +- Properly handle forwarding stdin to all processes when "mpirun + --stdin all" is used. +- Workaround XLC assembly bug. +- OS X Tiger (10.4) has not been supported for a while, so forcibly + abort configure if we detect it. +- Fix segv in the openib BTL when running on SPARC 64 systems. +- Fix some include file ordering issues on some BSD-based platforms. + Thanks to Paul Hargove for this (and many, many other) fixes. +- Properly handle .FALSE. return parameter value to attribute copy + callback functions. +- Fix a bunch of minor C++ API issues; thanks to Fujitsu for the patch. +- Fixed the default hostfile MCA parameter behavior. +- Per the MPI spec, ensure not to touch the port_name parameter to + MPI_CLOSE_PORT (it's an IN parameter). + + +1.5.5: 27 Mar 2012 +------------------ + +- Many, many portability configure/build fixes courtesy of Paul + Hargrove. Thanks, Paul! +- Fixed shared memory fault tolerance support compiler errors. +- Removed not-production-quality rshd and tmd PLM launchers. +- Minor updates to the Open MPI SRPM spec file. +- Fixed mpirun's --bind-to-socket option. +- A few MPI_THREAD_MULTIPLE fixes in the shared memory BTL. +- Upgrade the GNU Autotools used to bootstrap the 1.5/1.6 series to + all the latest versions at the time of this release. +- Categorically state in the README that if you're having a problem + with Open MPI with the Linux Intel 12.1 compilers, *upgrade your + Intel Compiler Suite to the latest patch version*, and the problems + will go away. :-) +- Fix the --without-memory-manager configure option. +- Fixes for Totalview/DDT MPI-capable debuggers. +- Update rsh/ssh support to properly handle the Mac OS X library path + (i.e., DYLD_LIBRARY_PATH). +- Make warning about shared memory backing files on a networked file + system be optional (i.e., can be disabled via MCA parameter). +- Several fixes to processor and memory affinity. +- Various shared memory infrastructure improvements. +- Various checkpoint/restart fixes. +- Fix MPI_IN_PLACE (and other MPI sentinel values) on OS X. Thanks to + Dave Goodell for providing the magic OS X gcc linker flags necessary. +- Various man page corrections and typo fixes. Thanks to Fujitsu for + the patch. +- Updated wrapper compiler man pages to list the various --showme + options that are available. +- Add PMI direct-launch support (e.g., "srun mpi_application" under + SLURM). +- Correctly compute the aligned address when packing the + datatype description. Thanks to Fujitsu for the patch. +- Fix MPI obscure corner case handling in packing MPI datatypes. + Thanks to Fujitsu for providing the patch. +- Workaround an Intel compiler v12.1.0 2011.6.233 vector optimization + bug. +- Output the MPI API in ompi_info output. +- Major VT update to 5.12.1.4. +- Upgrade embedded Hardware Locality (hwloc) v1.3.2, plus some + post-1.3.2-release bug fixes. All processor and memory binding is + now done through hwloc. Woo hoo! Note that this fixes core binding + on AMD Opteron 6200 and 4200 series-based systems (sometimes known + as Interlagos, Valencia, or other Bulldozer-based chips). +- New MCA parameters to control process-wide memory binding policy: + hwloc_base_mem_alloc_policy, hwloc_base_mem_bind_failure_action (see + ompi_info --param hwloc base). +- Removed direct support for libnuma. Libnuma support may now be + picked up through hwloc. +- Added MPI_IN_PLACE support to MPI_EXSCAN. +- Various fixes for building on Windows, including MinGW support. +- Removed support for the OpenFabrics IBCM connection manager. +- Updated Chelsio T4 and Intel NE OpenFabrics default buffer settings. +- Increased the default RDMA CM timeout to 30 seconds. +- Issue a warning if both btl_tcp_if_include and btl_tcp_if_exclude + are specified. +- Many fixes to the Mellanox MXM transport. + + +1.5.4: 18 Aug 2011 +------------------ + +- Add support for the (as yet unreleased) Mellanox MXM transport. +- Add support for dynamic service levels (SLs) in the openib BTL. +- Fixed C++ bindings cosmetic/warnings issue with + MPI::Comm::NULL_COPY_FN and MPI::Comm::NULL_DELETE_FN. Thanks to + Júlio Hoffimann for identifying the issues. +- Also allow the word "slots" in rankfiles (i.e., not just "slot"). + (** also to appear in 1.4.4) +- Add Mellanox ConnectX 3 device IDs to the openib BTL defaults. + (** also to appear in 1.4.4) +- Various FCA updates. +- Fix 32 bit SIGBUS errors on Solaris SPARC platforms. +- Add missing ARM assembly code files. +- Update to allow more than 128 entries in an appfile. + (** also to appear in 1.4.4) +- Various VT updates and bug fixes. +- Update description of btl_openib_cq_size to be more accurate. + (** also to appear in 1.4.4) +- Various assembly "clobber" fixes. +- Fix a hang in carto selection in obscure situations. +- Guard the inclusion of execinfo.h since not all platforms have it. Thanks + to Aleksej Saushev for identifying this issue. + (** also to appear in 1.4.4) +- Support Solaris legacy munmap prototype changes. + (** also to appear in 1.4.4) +- Updated to Automake 1.11.1 per + http://www.open-mpi.org/community/lists/devel/2011/07/9492.php. +- Fix compilation of LSF support. +- Update MPI_Comm_spawn_multiple.3 man page to reflect what it + actually does. +- Fix for possible corruption of the environment. Thanks to Peter + Thompson for the suggestion. (** also to appear in 1.4.4) +- Enable use of PSM on direct-launch SLURM jobs. +- Update paffinity hwloc to v1.2, and to fix minor bugs affinity + assignment bugs on PPC64/Linux platforms. +- Let the openib BTL auto-detect its bandwidth. +- Support new MPI-2.2 datatypes. +- Updates to support more datatypes in MPI one-sided communication. +- Fix recursive locking bug when MPI-IO was used with + MPI_THREAD_MULTIPLE. (** also to appear in 1.4.4) +- Fix mpirun handling of prefix conflicts. +- Ensure mpirun's --xterm options leaves sessions attached. + (** also to appear in 1.4.4) +- Fixed type of sendcounts and displs in the "use mpi" F90 module. + ABI is preserved, but applications may well be broken. See the + README for more details. Thanks to Stanislav Sazykin for + identifying the issue. (** also to appear in 1.4.4) +- Fix indexed datatype leaks. Thanks to Pascal Deveze for supplying + the initial patch. (** also to appear in 1.4.4) +- Fix debugger mapping when mpirun's -npernode option is used. +- Fixed support for configure's --disable-dlopen option when used with + "make distclean". +- Fix segv associated with MPI_Comm_create with MPI_GROUP_EMPTY. + Thanks to Dominik Goeddeke for finding this. + (** also to appear in 1.4.4) +- Improved LoadLeveler ORTE support. +- Add new WinVerbs BTL plugin, supporting native OpenFabrics verbs on + Windows (the "wv" BTL). +- Add new btl_openib_gid_index MCA parameter to allow selecting which + GID to use on an OpenFabrics device's GID table. +- Add support for PCI relaxed ordering in the OpenFabrics BTL (when + available). +- Update rsh logic to allow correct SGE operation. +- Ensure that the mca_paffinity_alone MCA parameter only appears once + in the ompi_info output. Thanks to Gus Correa for identifying the + issue. +- Fixed return codes from MPI_PROBE and MPI_IPROBE. + (** also to appear in 1.4.4) +- Remove --enable-progress-thread configure option; it doesn't work on + the v1.5 branch. Rename --enable-mpi-threads to + --enable-mpi-thread-multiple. Add new --enable-opal-multi-threads + option. +- Updates for Intel Fortran compiler version 12. +- Remove bproc support. Farewell bproc! +- If something goes wrong during MPI_INIT, fix the error + message to say that it's illegal to invoke MPI_INIT before + MPI_INIT. + + +1.5.3: 16 Mar 2011 +------------------ + +- Add missing "affinity" MPI extension (i.e., the OMPI_Affinity_str() + API) that was accidentally left out of the 1.5.2 release. + + +1.5.2: 9 Mar 2011 +----------------- + +- Replaced all custom topology / affinity code with initial support + for hwloc v1.1.1 (PLPA has been removed -- long live hwloc!). Note + that hwloc is bundled with Open MPI, but an external hwloc can be + used, if desired. See README for more details. +- Many CMake updates for Windows builds. +- Updated opal_cr_thread_sleep_wait MCA param default value to make it + less aggressive. +- Updated debugger support to allow Totalview attaching from jobs + launched directly via srun (not mpirun). Thanks to Nikolay Piskun + for the patch. +- Added more FTB/CIFTS support. +- Fixed compile error with the PGI compiler. +- Portability fixes to allow the openib BTL to run on the Solaris + verbs stack. +- Fixed multi-token command-line issues when using the mpirun + --debug switch. For example: + mpirun --debug -np 2 a.out "foo bar" + Thanks to Gabriele Fatigati for reporting the issue. +- Added ARM support. +- Added the MPI_ROOT environment variable in the Open MPI Linux SRPM + for customers who use the BPS and LSF batch managers. +- Updated ROMIO from MPICH v1.3.1 (plus one additional patch). +- Fixed some deprecated MPI API function notification messages. +- Added new "bfo" PML that provides failover on OpenFabrics networks. +- Fixed some buffer memcheck issues in MPI_*_init. +- Added Solaris-specific chip detection and performance improvements. +- Fix some compile errors on Solaris. +- Updated the "rmcast" framework with bug fixes, new functionality. +- Updated the Voltaire FCA component with bug fixes, new + functionality. Support for FCA version 2.1. +- Fix gcc 4.4.x and 4.5.x over-aggressive warning notifications on + possibly freeing stack variables. Thanks to the Gentoo packagers + for reporting the issue. +- Make the openib component be verbose when it disqualifies itself due + to MPI_THREAD_MULTIPLE. +- Minor man page fixes. +- Various checkpoint / restart fixes. +- Fix race condition in the one-sided unlock code. Thanks to + Guillaume Thouvenin for finding the issue. +- Improve help message aggregation. +- Add OMPI_Affinity_str() optional user-level API function (i.e., the + "affinity" MPI extension). See README for more details. +- Added btl_tcp_if_seq MCA parameter to select a different ethernet + interface for each MPI process on a node. This parameter is only + useful when used with virtual ethernet interfaces on a single + network card (e.g., when using virtual interfaces give dedicated + hardware resources on the NIC to each process). +- Changed behavior of mpirun to terminate if it receives 10 (or more) + SIGPIPEs. +- Fixed oversubscription detection. +- Added new mtl_mx_board and mtl_mx_endpoint MCA parameters. +- Added ummunotify support for OpenFabrics-based transports. See the + README for more details. + + +1.5.1: 15 Dec 2010 +------------------ + +- Fixes for the Oracle Studio 12.2 Fortran compiler. +- Fix SPARC and SPARCv9 atomics. Thanks to Nicola Stange for the + initial patch. +- Fix Libtool issues with the IBM XL compiler in 64-bit mode. +- Restore the reset of the libevent progress counter to avoid + over-sampling the event library. +- Update memory barrier support. +- Use memmove (instead of memcpy) when necessary (e.g., source and + destination overlap). +- Fixed ompi-top crash. +- Fix to handle Autoconf --program-transforms properly and other + m4/configury updates. Thanks to the GASNet project for the + --program transforms fix. +- Allow hostfiles to specify usernames on a per-host basis. +- Update wrapper compiler scripts to search for perl during configure, + per request from the BSD maintainers. +- Minor man page fixes. +- Added --with-libltdl option to allow building Open MPI with an + external installation of libltdl. +- Fixed various issues with -D_FORTIFY_SOURCE=2. +- Various VT fixes and updates. + + +1.5: 10 Oct 2010 +---------------- + +- Added "knem" support: direct process-to-process copying for shared + memory message passing. See http://runtime.bordeaux.inria.fr/knem/ + and the README file for more details. +- Updated shared library versioning scheme and linking style of MPI + applications. The MPI application ABI has been broken from the + v1.3/v1.4 series. MPI applications compiled against any prior + version of Open MPI will need to, at a minimum, re-link. See the + README file for more details. +- Added "fca" collective component, enabling MPI collective offload + support for Voltaire switches. +- Fixed MPI one-sided operations with large target displacements. + Thanks to Brian Price and Jed Brown for reporting the issue. +- Fixed MPI_GET_COUNT when used with large counts. Thanks to Jed + Brown for reporting the issue. +- Made the openib BTL safer if extremely low SRQ settings are used. +- Fixed handling of the array_of_argv parameter in the Fortran + binding of MPI_COMM_SPAWN_MULTIPLE (** also to appear: 1.4.3). +- Fixed malloc(0) warnings in some collectives. +- Fixed a problem with the Fortran binding for + MPI_FILE_CREATE_ERRHANDLER. Thanks to Secretan Yves for identifying + the issue (** also to appear: 1.4.3). +- Updates to the LSF PLM to ensure that the path is correctly passed. + Thanks to Teng Lin for the patch (** also to appear: 1.4.3). +- Fixes for the F90 MPI_COMM_SET_ERRHANDLER and MPI_WIN_SET_ERRHANDLER + bindings. Thanks to Paul Kapinos for pointing out the issue + (** also to appear: 1.4.3). +- Fixed extra_state parameter types in F90 prototypes for + MPI_COMM_CREATE_KEYVAL, MPI_GREQUEST_START, MPI_REGISTER_DATAREP, + MPI_TYPE_CREATE_KEYVAL, and MPI_WIN_CREATE_KEYVAL. +- Fixes for Solaris oversubscription detection. +- If the PML determines it can't reach a peer process, print a + slightly more helpful message. Thanks to Nick Edmonds for the + suggestion. +- Make btl_openib_if_include/exclude function the same way + btl_tcp_if_include/exclude works (i.e., supplying an _include list + overrides supplying an _exclude list). +- Apply more scalable reachability algorithm on platforms with more + than 8 TCP interfaces. +- Various assembly code updates for more modern platforms / compilers. +- Relax restrictions on using certain kinds of MPI datatypes with + one-sided operations. Users beware; not all MPI datatypes are valid + for use with one-sided operations! +- Improve behavior of MPI_COMM_SPAWN with regards to --bynode. +- Various threading fixes in the openib BTL and other core pieces of + Open MPI. +- Various help file and man pages updates. +- Various FreeBSD and NetBSD updates and fixes. Thanks to Kevin + Buckley and Aleksej Saushev for their work. +- Fix case where freeing communicators in MPI_FINALIZE could cause + process failures. +- Print warnings if shared memory state files are opened on what look + like networked filesystems. +- Update libevent to v1.4.13. +- Allow propagating signals to processes that call fork(). +- Fix bug where MPI_GATHER was sometimes incorrectly examining the + datatype on non-root processes. Thanks to Michael Hofmann for + investigating the issue. +- Various Microsoft Windows fixes. +- Various Catamount fixes. +- Various checkpoint / restart fixes. +- Xgrid support has been removed until it can be fixed (patches + would be welcome). +- Added simplistic "libompitrace" contrib package. Using the MPI + profiling interface, it essentially prints out to stderr when select + MPI functions are invoked. +- Update bundled VampirTrace to v5.8.2. +- Add pkg-config(1) configuration files for ompi, ompi-c, ompi-cxx, + ompi-f77, ompi-f90. See the README for more details. +- Removed the libopenmpi_malloc library (added in the v1.3 series) + since it is no longer necessary +- Add several notifier plugins (generally used when Open MPI detects + system/network administrator-worthy problems); each have their own + MCA parameters to govern their usage. See "ompi_info --param + notifier " for more details. + - command to execute arbitrary commands (e.g., run a script). + - file to send output to a file. + - ftb to send output to the Fault Tolerant Backplane (see + http://wiki.mcs.anl.gov/cifts/index.php/CIFTS) + - hnp to send the output to mpirun. + - smtp (requires libesmtp) to send an email. + +1.4.5: 12 Feb 2012 +------------------ + +- Fixed the --disable-memory-manager configure switch. + (** also to appear in 1.5.5) +- Fix typos in code and man pages. Thanks to Fujitsu for these fixes. + (** also to appear in 1.5.5) +- Improve management of the registration cache; when full, try freeing + old entries and attempt to re-register. +- Fixed a data packing pointer alignment issue. Thanks to Fujitsu + for the patch. + (** also to appear in 1.5.5) +- Add ability to turn off warning about having the shared memory backing + store over a networked filesystem. Thanks to Chris Samuel for this + suggestion. + (** also to appear in 1.5.5) +- Removed an unnecessary memmove() and plugged a couple of small memory leaks + in the openib OOB connection setup code. +- Fixed some QLogic bugs. Thanks to Mark Debbage from QLogic for the patches. +- Fixed problem with MPI_IN_PLACE and other sentinel Fortran constants + on OS X. + (** also to appear in 1.5.5) +- Fix SLURM cpus-per-task allocation. + (** also to appear in 1.5.5) +- Fix the datatype engine for when data left over from the previous + pack was larger than the allowed space in the pack buffer. Thanks to + Yuki Matsumoto and Takahiro Kawashima for the bug report and the + patch. +- Fix Fortran value for MPI_MAX_PORT_NAME. Thanks to Enzo Dari for + raising the issue. +- Workaround an Intel compiler v12.1.0 2011.6.233 vector optimization + bug. +- Fix issues on Solaris with the openib BTL. +- Fixes for the Oracle Studio 12.2 Fortran compiler. +- Update iWARP parameters for the Intel NICs. + (** also to appear in 1.5.5) +- Fix obscure cases where MPI_ALLGATHER could crash. Thanks to Andrew + Senin for reporting the problem. + (** also to appear in 1.5.5) + + +1.4.4: 11 Oct 2011 +------------------ + +- Modified a memcpy() call in the openib btl connection setup to use + memmove() instead because of the possibility of an overlapping + copy (as identified by valgrind). +- Changed use of sys_timer_get_cycles() to the more appropriate + wrapper: opal_timer_base_get_cycles(). Thanks to Jani Monoses + for this fix. +- Corrected the reported default value of btl_openib_ib_timeout + in the "IB retries exceeded" error message. Thanks to Kevin Buckley + for this correction. +- Increased rdmacm address resolution timeout from 1s to 30s & + updated Chelsio T4 openib BTL defaults. Thanks to Steve Wise + for these updates. + (** also to appear in 1.5.5) +- Ensure that MPI_Accumulate error return in 1.4 is consistent with + 1.5.x and trunk. +- Allow the word "slots" in rankfiles (i.e., not just "slot"). + (** also appeared in 1.5.4) +- Add Mellanox ConnectX 3 device IDs to the openib BTL defaults. + (** also appeared in 1.5.4) +- Update description of btl_openib_cq_size to be more accurate. +- Ensure mpirun's --xterm options leaves sessions attached. + (** also appeared in 1.5.4) +- Update to allow more than 128 entries in an appfile. + (** also appeared in 1.5.4) +- Update description of btl_openib_cq_size to be more accurate. + (** also appeared in 1.5.4) +- Fix for deadlock when handling recursive attribute keyval deletions + (e.g., when using ROMIO with MPI_THREAD_MULTIPLE). +- Fix indexed datatype leaks. Thanks to Pascal Deveze for supplying + the initial patch. (** also appeared in 1.5.4) +- Fixed the F90 types of the sendcounts and displs parameters to + MPI_SCATTERV. Thanks to Stanislav Sazykin for identifying the issue. + (** also appeared in 1.5.4) +- Exclude opal/libltdl from "make distclean" when --disable-dlopen is + used. Thanks to David Gunter for reporting the issue. +- Fixed a segv in MPI_Comm_create when called with GROUP_EMPTY. + Thanks to Dominik Goeddeke for finding this. + (** also appeared in 1.5.4) +- Fixed return codes from MPI_PROBE and MPI_IPROBE. + (** also appeared in 1.5.4) +- Fixed undefined symbol error when using the vtf90 profiling tool. +- Fix for referencing an uninitialized variable in DPM ORTE. Thanks + to Avinash Malik for reporting the issue. +- Fix for correctly handling multi-token args when using debuggers. +- Eliminated the unneeded u_int*_t datatype definitions. +- Change in ORTE DPM to get around gcc 4.[45].x compiler wanrings + about possibly calling free() on a non-heap variable, even though it + will never happen because the refcount will never go to zero. +- Fixed incorrect text in MPI_File_set_view man page. +- Fix in MPI_Init_thread for checkpoint/restart. +- Fix for libtool issue when using pgcc to compile ompi in conjunction + with the -tp option. +- Fixed a race condition in osc_rdma_sync. Thanks to Guillaume + Thouvenin for finding this issue. +- Clarification of MPI_Init_thread man page. +- Fixed an indexing problem in precondition_transports. +- Fixed a problem in which duplicated libs were being specified for + linking. Thanks to Hicham Mouline for noticing it. +- Various autogen.sh fixes. +- Fix for memchecking buffers during MPI_*INIT. +- Man page cleanups. Thanks to Jeremiah Willcock and Jed Brown. +- Fix for VT rpmbuild on RHEL5. +- Support Solaris legacy munmap prototype changes. + (** also appeared in 1.5.4) +- Expands app_idx to int32_t to allow more than 127 app_contexts. +- Guard the inclusion of execinfo.h since not all platforms have it. Thanks + to Aleksej Saushev for identifying this issue. + (** also appeared in 1.5.4) +- Fix to avoid possible environment corruption. Thanks to Peter Thompson + for identifying the issue and supplying a patch. + (** also appeared in 1.5.4) +- Fixed paffinity base MCA duplicate registrations. Thanks to Gus + Correa for bringing this to our attention. +- Fix recursive locking bug when MPI-IO was used with + MPI_THREAD_MULTIPLE. (** also appeared in 1.5.4) +- F90 MPI API fixes. +- Fixed a misleading MPI_Bcast error message. Thanks to Jeremiah + Willcock for reporting this. +- Added to ptmalloc's hooks.c (it's not always included + by default on some systems). +- Libtool patch to get around a build problem when using the IBM XL + compilers. +- Fix to detect and avoid overlapping memcpy(). Thanks to + Francis Pellegrini for identifying the issue. +- Fix to allow ompi to work on top of RoCE vLANs. +- Restored a missing debugger flag to support TotalView. Thanks to + David Turner and the TV folks for supplying the fix. +- Updated SLURM support to 1.5.1. +- Removed an extraneous #include from the TCP BTL. +- When specifying OOB ports, fix to convert the ports into network + byte order before binding. +- Fixed use of memory barriers in the SM BTL. This fixed segv's when + compiling with Intel 10.0.025 or PGI 9.0-3. +- Fix to prevent the SM BTL from creating its mmap'd file in + directories that are remotely mounted. + + +1.4.3: 6 Sep 2010 +----------------- + +- Fixed handling of the array_of_argv parameter in the Fortran + binding of MPI_COMM_SPAWN_MULTIPLE (** also to appear: 1.5). +- Fixed a problem with the Fortran binding for + MPI_FILE_CREATE_ERRHANDLER. Thanks to Secretan Yves for identifying + the issue (** also to appear: 1.5). +- Updates to the LSF PLM to ensure that the path is correctly passed. + Thanks to Teng Lin for the patch (** also to appear: 1.5). +- Fixes for the F90 MPI_COMM_SET_ERRHANDLER and MPI_WIN_SET_ERRHANDLER + bindings. Thanks to Paul Kapinos for pointing out the issue. + (** also to appear: 1.5). +- Fixed various MPI_THREAD_MULTIPLE race conditions. +- Fixed an issue with an undeclared variable from ptmalloc2 munmap on + BSD systems. +- Fixes for BSD interface detection. +- Various other BSD fixes. Thanks to Kevin Buckley helping to track. + all of this down. +- Fixed issues with the use of the -nper* mpirun command line arguments. +- Fixed an issue with coll tuned dynamic rules. +- Fixed an issue with the use of OPAL_DESTDIR being applied too aggressively. +- Fixed an issue with one-sided xfers when the displacement exceeds 2GBytes. +- Change to ensure TotalView works properly on Darwin. +- Added support for Visual Studio 2010. +- Fix to ensure proper placement of VampirTrace header files. +- Needed to add volatile keyword to a varialbe used in debugging + (MPIR_being_debugged). +- Fixed a bug in inter-allgather. +- Fixed malloc(0) warnings. +- Corrected a typo the MPI_Comm_size man page (intra -> inter). Thanks + to Simon number.cruncher for pointing this out. +- Fixed a SegV in orted when given more than 127 app_contexts. +- Removed xgrid source code from the 1.4 branch since it is no longer + supported in the 1.4 series. +- Removed the --enable-opal-progress-threads config option since + opal progress thread support does not work in 1.4.x. +- Fixed a defect in VampirTrace's vtfilter. +- Fixed wrong Windows path in hnp_contact. +- Removed the requirement for a paffinity component. +- Removed a hardcoded limit of 64 interconnected jobs. +- Fix to allow singletons to use ompi-server for rendezvous. +- Fixed bug in output-filename option. +- Fix to correctly handle failures in mx_init(). +- Fixed a potential Fortran memory leak. +- Fixed an incorrect branch in some ppc32 assembly code. Thanks + to Matthew Clark for this fix. +- Remove use of undocumented AS_VAR_GET macro during configuration. +- Fixed an issue with VampirTrace's wrapper for MPI_init_thread. +- Updated mca-btl-openib-device-params.ini file with various new vendor id's. +- Configuration fixes to ensure CPPFLAGS in handled properly if a non-standard + valgrind location was specified. +- Various man page updates + + +1.4.2: 4 May 2010 +----------------- + +- Fixed problem when running in heterogeneous environments. Thanks to + Timur Magomedov for helping to track down this issue. +- Update LSF support to ensure that the path is passed correctly. + Thanks to Teng Lin for submitting a patch. +- Fixed some miscellaneous oversubscription detection bugs. +- IBM re-licensed its LoadLeveler code to be BSD-compliant. +- Various OpenBSD and NetBSD build and run-time fixes. Many thanks to + the OpenBSD community for their time, expertise, and patience + getting these fixes incorporated into Open MPI's main line. +- Various fixes for multithreading deadlocks, race conditions, and + other nefarious things. +- Fixed ROMIO's handling of "nearly" contiguous issues (e.g., with + non-zero true_lb). Thanks for Pascal Deveze for the patch. +- Bunches of Windows build fixes. Many thanks to several Windows + users for their help in improving our support on Windows. +- Now allow the graceful failover from MTLs to BTLs if no MTLs can + initialize successfully. +- Added "clobber" information to various atomic operations, fixing + erroneous behavior in some newer versions of the GNU compiler suite. +- Update various iWARP and InfiniBand device specifications in the + OpenFabrics .ini support file. +- Fix the use of hostfiles when a username is supplied. +- Various fixes for rankfile support. +- Updated the internal version of VampirTrace to 5.4.12. +- Fixed OS X TCP wireup issues having to do with IPv4/IPv6 confusion + (see https://svn.open-mpi.org/trac/ompi/changeset/22788 for more + details). +- Fixed some problems in processor affinity support, including when + there are "holes" in the processor namespace (e.g., offline + processors). +- Ensure that Open MPI's "session directory" (usually located in /tmp) + is cleaned up after process termination. +- Fixed some problems with the collective "hierarch" implementation + that could occur in some obscure conditions. +- Various MPI_REQUEST_NULL, API parameter checking, and attribute + error handling fixes. Thanks to Lisandro Dalcín for reporting the + issues. +- Fix case where MPI_GATHER erroneously used datatypes on non-root + nodes. Thanks to Michael Hofmann for investigating the issue. +- Patched ROMIO support for PVFS2 > v2.7 (patch taken from MPICH2 + version of ROMIO). +- Fixed "mpirun --report-bindings" behavior when used with + mpi_paffinity_alone=1. Also fixed mpi_paffinity_alone=1 behavior + with non-MPI applications. Thanks to Brice Goglin for noticing the + problem. +- Ensure that all OpenFabrics devices have compatible receive_queues + specifications before allowing them to communicate. See the lengthy + comment in https://svn.open-mpi.org/trac/ompi/changeset/22592 for + more details. +- Fix some issues with checkpoint/restart. +- Improve the pre-MPI_INIT/post-MPI_FINALIZE error messages. +- Ensure that loopback addresses are never advertised to peer + processes for RDMA/OpenFabrics support. +- Fixed a CSUM PML false positive. +- Various fixes for Catamount support. +- Minor update to wrapper compilers in how user-specific argv is + ordered on the final command line. Thanks to Jed Brown for the + suggestions. +- Removed flex.exe binary from Open MPI tarballs; now generate flex + code from a newer (Windows-friendly) flex when we make official + tarballs. + + +1.4.1: 15 Jan 2010 +------------------ + +- Update to PLPA v1.3.2, addressing a licensing issue identified by + the Fedora project. See + https://svn.open-mpi.org/trac/plpa/changeset/262 for details. +- Add check for malformed checkpoint metadata files (Ticket #2141). +- Fix error path in ompi-checkpoint when not able to checkpoint + (Ticket #2138). +- Cleanup component release logic when selecting checkpoint/restart + enabled components (Ticket #2135). +- Fixed VT node name detection for Cray XT platforms, and fixed some + broken VT documentation files. +- Fix a possible race condition in tearing down RDMA CM-based + connections. +- Relax error checking on MPI_GRAPH_CREATE. Thanks to David Singleton + for pointing out the issue. +- Fix a shared memory "hang" problem that occurred on x86/x86_64 + platforms when used with the GNU >=4.4.x compiler series. +- Add fix for Libtool 2.2.6b's problems with the PGI 10.x compiler + suite. Inspired directly from the upstream Libtool patches that fix + the issue (but we need something working before the next Libtool + release). + + +1.4: 8 Dec 2009 +--------------- + +The *only* change in the Open MPI v1.4 release (as compared to v1.3.4) +was to update the embedded version of Libtool's libltdl to address a +potential security vulnerability. Specifically: Open MPI v1.3.4 was +created with GNU Libtool 2.2.6a; Open MPI v1.4 was created with GNU +Libtool 2.2.6b. There are no other changes between Open MPI v1.3.4 +and v1.4. + + +1.3.4: 13 Feb 2010 +------------------ + +- Fix some issues in OMPI's SRPM with regard to shell_scripts_basename + and its use with mpi-selector. Thanks to Bill Johnstone for + pointing out the problem. +- Added many new MPI job process affinity options to mpirun. See the + newly-updated mpirun(1) man page for details. +- Several updates to mpirun's XML output. +- Update to fix a few Valgrind warnings with regards to the ptmalloc2 + allocator and Open MPI's use of PLPA. +- Many updates and fixes to the (non-default) "sm" collective + component (i.e., native shared memory MPI collective operations). +- Updates and fixes to some MPI_COMM_SPAWN_MULTIPLE corner cases. +- Fix some internal copying functions in Open MPI's use of PLPA. +- Correct some SLURM nodelist parsing logic that may have interfered + with large jobs. Additionally, per advice from the SLURM team, + change the environment variable that we use for obtaining the job's + allocation. +- Revert to an older, safer (but slower) communicator ID allocation + algorithm. +- Fixed minimum distance finding for OpenFabrics devices in the openib + BTL. +- Relax the parameter checking MPI_CART_CREATE a bit. +- Fix MPI_COMM_SPAWN[_MULTIPLE] to only error-check the info arguments + on the root process. Thanks to Federico Golfre Andreasi for + reporting the problem. +- Fixed some BLCR configure issues. +- Fixed a potential deadlock when the openib BTL was used with + MPI_THREAD_MULTIPLE. +- Fixed dynamic rules selection for the "tuned" coll component. +- Added a launch progress meter to mpirun (useful for large jobs; set + the orte_report_launch_progress MCA parameter to 1 to see it). +- Reduced the number of file descriptors consumed by each MPI process. +- Add new device IDs for Chelsio T3 RNICs to the openib BTL config file. +- Fix some CRS self component issues. +- Added some MCA parameters to the PSM MTL to tune its run-time + behavior. +- Fix some VT issues with MPI_BOTTOM/MPI_IN_PLACE. +- Man page updates from the Debain Open MPI package maintainers. +- Add cycle counter support for the Alpha and Sparc platforms. +- Pass visibility flags to libltdl's configure script, resulting in + those symbols being hidden. This appears to mainly solve the + problem of applications attempting to use different versions of + libltdl from that used to build Open MPI. + + +1.3.3: 14 Jul 2009 +------------------ + +- Fix a number of issues with the openib BTL (OpenFabrics) RDMA CM, + including a memory corruption bug, a shutdown deadlock, and a route + timeout. Thanks to David McMillen and Hal Rosenstock for help in + tracking down the issues. +- Change the behavior of the EXTRA_STATE parameter that is passed to + Fortran attribute callback functions: this value is now stored + internally in MPI -- it no longer references the original value + passed by MPI_*_CREATE_KEYVAL. +- Allow the overriding RFC1918 and RFC3330 for the specification of + "private" networks, thereby influencing Open MPI's TCP + "reachability" computations. +- Improve flow control issues in the sm btl, by both tweaking the + shared memory progression rules and by enabling the "sync" collective + to barrier every 1,000th collective. +- Various fixes for the IBM XL C/C++ v10.1 compiler. +- Allow explicit disabling of ptmalloc2 hooks at runtime (e.g., enable + support for Debian's builtroot system). Thanks to Manuel Prinz and + the rest of the Debian crew for helping identify and fix this issue. +- Various minor fixes for the I/O forwarding subsystem. +- Big endian iWARP fixes in the Open Fabrics RDMA CM support. +- Update support for various OpenFabrics devices in the openib BTL's + .ini file. +- Fixed undefined symbol issue with Open MPI's parallel debugger + message queue support so it can be compiled by Sun Studio compilers. +- Update MPI_SUBVERSION to 1 in the Fortran bindings. +- Fix MPI_GRAPH_CREATE Fortran 90 binding. +- Fix MPI_GROUP_COMPARE behavior with regards to MPI_IDENT. Thanks to + Geoffrey Irving for identifying the problem and supplying the fix. +- Silence gcc 4.1 compiler warnings about type punning. Thanks to + Number Cruncher for the fix. +- Added more Valgrind and other memory-cleanup fixes. Thanks to + various Open MPI users for help with these issues. +- Miscellaneous VampirTrace fixes. +- More fixes for openib credits in heavy-congestion scenarios. +- Slightly decrease the latency in the openib BTL in some conditions + (add "send immediate" support to the openib BTL). +- Ensure to allow MPI_REQUEST_GET_STATUS to accept an + MPI_STATUS_IGNORE parameter. Thanks to Shaun Jackman for the bug + report. +- Added Microsoft Windows support. See README.WINDOWS file for + details. + + +1.3.2: 22 Apr 2009 +------------------ + +- Fixed a potential infinite loop in the openib BTL that could occur + in senders in some frequent-communication scenarios. Thanks to Don + Wood for reporting the problem. +- Add a new checksum PML variation on ob1 (main MPI point-to-point + communication engine) to detect memory corruption in node-to-node + messages +- Add a new configuration option to add padding to the openib + header so the data is aligned +- Add a new configuration option to use an alternative checksum algo + when using the checksum PML +- Fixed a problem reported by multiple users on the mailing list that + the LSF support would fail to find the appropriate libraries at + run-time. +- Allow empty shell designations from getpwuid(). Thanks to Sergey + Koposov for the bug report. +- Ensure that mpirun exits with non-zero status when applications die + due to user signal. Thanks to Geoffroy Pignot for suggesting the + fix. +- Ensure that MPI_VERSION / MPI_SUBVERSION match what is returned by + MPI_GET_VERSION. Thanks to Rob Egan for reporting the error. +- Updated MPI_*KEYVAL_CREATE functions to properly handle Fortran + extra state. +- A variety of ob1 (main MPI point-to-point communication engine) bug + fixes that could have caused hangs or seg faults. +- Do not install Open MPI's signal handlers in MPI_INIT if there are + already signal handlers installed. Thanks to Kees Verstoep for + bringing the issue to our attention. +- Fix GM support to not seg fault in MPI_INIT. +- Various VampirTrace fixes. +- Various PLPA fixes. +- No longer create BTLs for invalid (TCP) devices. +- Various man page style and lint cleanups. +- Fix critical OpenFabrics-related bug noted here: + http://www.open-mpi.org/community/lists/announce/2009/03/0029.php. + Open MPI now uses a much more robust memory intercept scheme that is + quite similar to what is used by MX. The use of "-lopenmpi-malloc" + is no longer necessary, is deprecated, and is expected to disappear + in a future release. -lopenmpi-malloc will continue to work for the + duration of the Open MPI v1.3 and v1.4 series. +- Fix some OpenFabrics shutdown errors, both regarding iWARP and SRQ. +- Allow the udapl BTL to work on Solaris platforms that support + relaxed PCI ordering. +- Fix problem where the mpirun would sometimes use rsh/ssh to launch on + the localhost (instead of simply forking). +- Minor SLURM stdin fixes. +- Fix to run properly under SGE jobs. +- Scalability and latency improvements for shared memory jobs: convert + to using one message queue instead of N queues. +- Automatically size the shared-memory area (mmap file) to match + better what is needed; specifically, so that large-np jobs will start. +- Use fixed-length MPI predefined handles in order to provide ABI + compatibility between Open MPI releases. +- Fix building of the posix paffinity component to properly get the + number of processors in loosely tested environments (e.g., + FreeBSD). Thanks to Steve Kargl for reporting the issue. +- Fix --with-libnuma handling in configure. Thanks to Gus Correa for + reporting the problem. + + +1.3.1: 19 Mar 2009 +------------------ + +- Added "sync" coll component to allow users to synchronize every N + collective operations on a given communicator. +- Increased the default values of the IB and RNR timeout MCA parameters. +- Fix a compiler error noted by Mostyn Lewis with the PGI 8.0 compiler. +- Fix an error that prevented stdin from being forwarded if the + rsh launcher was in use. Thanks to Branden Moore for pointing out + the problem. +- Correct a case where the added datatype is considered as contiguous but + has gaps in the beginning. +- Fix an error that limited the number of comm_spawns that could + simultaneously be running in some environments +- Correct a corner case in OB1's GET protocol for long messages; the + error could sometimes cause MPI jobs using the openib BTL to hang. +- Fix a bunch of bugs in the IO forwarding (IOF) subsystem and add some + new options to output to files and redirect output to xterm. Thanks to + Jody Weissmann for helping test out many of the new fixes and + features. +- Fix SLURM race condition. +- Fix MPI_File_c2f(MPI_FILE_NULL) to return 0, not -1. Thanks to + Lisandro Dalcin for the bug report. +- Fix the DSO build of tm PLM. +- Various fixes for size disparity between C int's and Fortran + INTEGER's. Thanks to Christoph van Wullen for the bug report. +- Ensure that mpirun exits with a non-zero exit status when daemons or + processes abort or fail to launch. +- Various fixes to work around Intel (NetEffect) RNIC behavior. +- Various fixes for mpirun's --preload-files and --preload-binary + options. +- Fix the string name in MPI::ERRORS_THROW_EXCEPTIONS. +- Add ability to forward SIFTSTP and SIGCONT to MPI processes if you + set the MCA parameter orte_forward_job_control to 1. +- Allow the sm BTL to allocate larger amounts of shared memory if + desired (helpful for very large multi-core boxen). +- Fix a few places where we used PATH_MAX instead of OPAL_PATH_MAX, + leading to compile problems on some platforms. Thanks to Andrea Iob + for the bug report. +- Fix mca_btl_openib_warn_no_device_params_found MCA parameter; it + was accidentally being ignored. +- Fix some run-time issues with the sctp BTL. +- Ensure that RTLD_NEXT exists before trying to use it (e.g., it + doesn't exist on Cygwin). Thanks to Gustavo Seabra for reporting + the issue. +- Various fixes to VampirTrace, including fixing compile errors on + some platforms. +- Fixed missing MPI_Comm_accept.3 man page; fixed minor issue in + orterun.1 man page. Thanks to Dirk Eddelbuettel for identifying the + problem and submitting a patch. +- Implement the XML formatted output of stdout/stderr/stddiag. +- Fixed mpirun's -wdir switch to ensure that working directories for + multiple app contexts are properly handled. Thanks to Geoffroy + Pignot for reporting the problem. +- Improvements to the MPI C++ integer constants: + - Allow MPI::SEEK_* constants to be used as constants + - Allow other MPI C++ constants to be used as array sizes +- Fix minor problem with orte-restart's command line options. See + ticket #1761 for details. Thanks to Gregor Dschung for reporting + the problem. + + +1.3: 19 Jan 2009 +---------------- + +- Extended the OS X 10.5.x (Leopard) workaround for a problem when + assembly code is compiled with -g[0-9]. Thanks to Barry Smith for + reporting the problem. See ticket #1701. +- Disabled MPI_REAL16 and MPI_COMPLEX32 support on platforms where the + bit representation of REAL*16 is different than that of the C type + of the same size (usually long double). Thanks to Julien Devriendt + for reporting the issue. See ticket #1603. +- Increased the size of MPI_MAX_PORT_NAME to 1024 from 36. See ticket #1533. +- Added "notify debugger on abort" feature. See tickets #1509 and #1510. + Thanks to Seppo Sahrakropi for the bug report. +- Upgraded Open MPI tarballs to use Autoconf 2.63, Automake 1.10.1, + Libtool 2.2.6a. +- Added missing MPI::Comm::Call_errhandler() function. Thanks to Dave + Goodell for bringing this to our attention. +- Increased MPI_SUBVERSION value in mpi.h to 1 (i.e., MPI 2.1). +- Changed behavior of MPI_GRAPH_CREATE, MPI_TOPO_CREATE, and several + other topology functions per MPI-2.1. +- Fix the type of the C++ constant MPI::IN_PLACE. +- Various enhancements to the openib BTL: + - Added btl_openib_if_[in|ex]clude MCA parameters for + including/excluding comma-delimited lists of HCAs and ports. + - Added RDMA CM support, includng btl_openib_cpc_[in|ex]clude MCA + parameters + - Added NUMA support to only use "near" network adapters + - Added "Bucket SRQ" (BSRQ) support to better utilize registered + memory, including btl_openib_receive_queues MCA parameter + - Added ConnectX XRC support (and integrated with BSRQ) + - Added btl_openib_ib_max_inline_data MCA parameter + - Added iWARP support + - Revamped flow control mechansisms to be more efficient + - "mpi_leave_pinned=1" is now the default when possible, + automatically improving performance for large messages when + application buffers are re-used +- Elimiated duplicated error messages when multiple MPI processes fail + with the same error. +- Added NUMA support to the shared memory BTL. +- Add Valgrind-based memory checking for MPI-semantic checks. +- Add support for some optional Fortran datatypes (MPI_LOGICAL1, + MPI_LOGICAL2, MPI_LOGICAL4 and MPI_LOGICAL8). +- Remove the use of the STL from the C++ bindings. +- Added support for Platform/LSF job launchers. Must be Platform LSF + v7.0.2 or later. +- Updated ROMIO with the version from MPICH2 1.0.7. +- Added RDMA capable one-sided component (called rdma), which + can be used with BTL components that expose a full one-sided + interface. +- Added the optional datatype MPI_REAL2. As this is added to the "end of" + predefined datatypes in the fortran header files, there will not be + any compatibility issues. +- Added Portable Linux Processor Affinity (PLPA) for Linux. +- Addition of a finer symbols export control via the visibiliy feature + offered by some compilers. +- Added checkpoint/restart process fault tolerance support. Initially + support a LAM/MPI-like protocol. +- Removed "mvapi" BTL; all InfiniBand support now uses the OpenFabrics + driver stacks ("openib" BTL). +- Added more stringent MPI API parameter checking to help user-level + debugging. +- The ptmalloc2 memory manager component is now by default built as + a standalone library named libopenmpi-malloc. Users wanting to + use leave_pinned with ptmalloc2 will now need to link the library + into their application explicitly. All other users will use the + libc-provided allocator instead of Open MPI's ptmalloc2. This change + may be overriden with the configure option enable-ptmalloc2-internal +- The leave_pinned options will now default to using mallopt on + Linux in the cases where ptmalloc2 was not linked in. mallopt + will also only be available if munmap can be intercepted (the + default whenever Open MPI is not compiled with --without-memory- + manager. +- Open MPI will now complain and refuse to use leave_pinned if + no memory intercept / mallopt option is available. +- Add option of using Perl-based wrapper compilers instead of the + C-based wrapper compilers. The Perl-based version does not + have the features of the C-based version, but does work better + in cross-compile environments. + + +1.2.9: 14 Feb 2009 +------------------ + +- Fix a segfault when using one-sided communications on some forms of derived + datatypes. Thanks to Dorian Krause for reporting the bug. See #1715. +- Fix an alignment problem affecting one-sided communications on + some architectures (e.g., SPARC64). See #1738. +- Fix compilation on Solaris when thread support is enabled in Open MPI + (e.g., when using --with-threads). See #1736. +- Correctly take into account the MTU that an OpenFabrics device port + is using. See #1722 and + https://bugs.openfabrics.org/show_bug.cgi?id=1369. +- Fix two datatype engine bugs. See #1677. + Thanks to Peter Kjellstrom for the bugreport. +- Fix the bml r2 help filename so the help message can be found. See #1623. +- Fix a compilation problem on RHEL4U3 with the PGI 32 bit compiler + caused by . See ticket #1613. +- Fix the --enable-cxx-exceptions configure option. See ticket #1607. +- Properly handle when the MX BTL cannot open an endpoint. See ticket #1621. +- Fix a double free of events on the tcp_events list. See ticket #1631. +- Fix a buffer overun in opal_free_list_grow (called by MPI_Init). + Thanks to Patrick Farrell for the bugreport and Stephan Kramer for + the bugfix. See ticket #1583. +- Fix a problem setting OPAL_PREFIX for remote sh-based shells. + See ticket #1580. + + +1.2.8: 14 Oct 2008 +------------------ + +- Tweaked one memory barrier in the openib component to be more conservative. + May fix a problem observed on PPC machines. See ticket #1532. +- Fix OpenFabrics IB partition support. See ticket #1557. +- Restore v1.1 feature that sourced .profile on remote nodes if the default + shell will not do so (e.g. /bin/sh and /bin/ksh). See ticket #1560. +- Fix segfault in MPI_Init_thread() if ompi_mpi_init() fails. See ticket #1562. +- Adjust SLURM support to first look for $SLURM_JOB_CPUS_PER_NODE instead of + the deprecated $SLURM_TASKS_PER_NODE environment variable. This change + may be *required* when using SLURM v1.2 and above. See ticket #1536. +- Fix the MPIR_Proctable to be in process rank order. See ticket #1529. +- Fix a regression introduced in 1.2.6 for the IBM eHCA. See ticket #1526. + + +1.2.7: 28 Aug 2008 +------------------ + +- Add some Sun HCA vendor IDs. See ticket #1461. +- Fixed a memory leak in MPI_Alltoallw when called from Fortran. + Thanks to Dave Grote for the bugreport. See ticket #1457. +- Only link in libutil when it is needed/desired. Thanks to + Brian Barret for diagnosing and fixing the problem. See ticket #1455. +- Update some QLogic HCA vendor IDs. See ticket #1453. +- Fix F90 binding for MPI_CART_GET. Thanks to Scott Beardsley for + bringing it to our attention. See ticket #1429. +- Remove a spurious warning message generated in/by ROMIO. See ticket #1421. +- Fix a bug where command-line MCA parameters were not overriding + MCA parameters set from environment variables. See ticket #1380. +- Fix a bug in the AMD64 atomics assembly. Thanks to Gabriele Fatigati + for the bug report and bugfix. See ticket #1351. +- Fix a gather and scatter bug on intercommunicators when the datatype + being moved is 0 bytes. See ticket #1331. +- Some more man page fixes from the Debian maintainers. + See tickets #1324 and #1329. +- Have openib BTL (OpenFabrics support) check for the presence of + /sys/class/infiniband before allowing itself to be used. This check + prevents spurious "OMPI did not find RDMA hardware!" notices on + systems that have the software drivers installed, but no + corresponding hardware. See tickets #1321 and #1305. +- Added vendor IDs for some ConnectX openib HCAs. See ticket #1311. +- Fix some RPM specfile inconsistencies. See ticket #1308. + Thanks to Jim Kusznir for noticing the problem. +- Removed an unused function prototype that caused warnings on + some systems (e.g., OS X). See ticket #1274. +- Fix a deadlock in inter-communicator scatter/gather operations. + Thanks to Martin Audet for the bug report. See ticket #1268. + + +1.2.6: 7 Apr 2008 +----------------- + +- Fix a bug in the inter-allgather for asymmetric inter-communicators. + Thanks to Martin Audet for the bug report. See ticket #1247. +- Fix a bug in the openib BTL when setting the CQ depth. Thanks + to Jon Mason for the bug report and fix. See ticket #1245. +- On Mac OS X Leopard, the execinfo component will be used for + backtraces, making for a more durable solution. See ticket #1246. +- Added vendor IDs for some QLogic DDR openib HCAs. See ticket #1227. +- Updated the URL to get the latest config.guess and config.sub files. + Thanks to Ralf Wildenhues for the bug report. See ticket #1226. +- Added shared contexts support to PSM MTL. See ticket #1225. +- Added pml_ob1_use_early_completion MCA parameter to allow users + to turn off the OB1 early completion semantic and avoid "stall" + problems seen on InfiniBand in some cases. See ticket #1224. +- Sanitized some #define macros used in mpi.h to avoid compiler warnings + caused by MPI programs built with different autoconf versions. + Thanks to Ben Allan for reporting the problem, and thanks to + Brian Barrett for the fix. See ticket #1220. +- Some man page fixes from the Debian maintainers. See ticket #1219. +- Made the openib BTL a bit more resilient in the face of driver + errors. See ticket #1217. +- Fixed F90 interface for MPI_CART_CREATE. See ticket #1208. + Thanks to Michal Charemza for reporting the problem. +- Fixed some C++ compiler warnings. See ticket #1203. +- Fixed formatting of the orterun man page. See ticket #1202. + Thanks to Peter Breitenlohner for the patch. + + +1.2.5: 8 Jan 2008 +----------------- + +- Fixed compile issue with open() on Fedora 8 (and newer) platforms. + Thanks to Sebastian Schmitzdorff for noticing the problem. +- Added run-time warnings during MPI_INIT when MPI_THREAD_MULTIPLE + and/or progression threads are used (the OMPI v1.2 series does not + support these well at all). +- Better handling of ECONNABORTED from connect on Linux. Thanks to + Bob Soliday for noticing the problem; thanks to Brian Barrett for + submitting a patch. +- Reduce extraneous output from OOB when TCP connections must + be retried. Thanks to Brian Barrett for submitting a patch. +- Fix for ConnectX devices and OFED 1.3. See ticket #1190. +- Fixed a configure problem for Fortran 90 on Cray systems. Ticket #1189. +- Fix an uninitialized variable in the error case in opal_init.c. + Thanks to Ake Sandgren for pointing out the mistake. +- Fixed a hang in configure if $USER was not defined. Thanks to + Darrell Kresge for noticing the problem. See ticket #900. +- Added support for parallel debuggers even when we have an optimized build. + See ticket #1178. +- Worked around a bus error in the Mac OS X 10.5.X (Leopard) linker when + compiling Open MPI with -g. See ticket #1179. +- Removed some warnings about 'rm' from Mac OS X 10.5 (Leopard) builds. +- Fix the handling of mx_finalize(). See ticket #1177. + Thanks to Ake Sandgren for bringing this issue to our attention. +- Fixed minor file descriptor leak in the Altix timer code. Thanks to + Paul Hargrove for noticing the problem and supplying the fix. +- Fix a problem when using a different compiler for C and Objective C. + See ticket #1153. +- Fix segfault in MPI_COMM_SPAWN when the user specified a working + directory. Thanks to Murat Knecht for reporting this and suggesting + a fix. +- A few manpage fixes from the Debian Open MPI maintainers. Thanks to + Tilman Koschnick, Sylvestre Ledru, and Dirk Eddelbuettel. +- Fixed issue with pthread detection when compilers are not all + from the same vendor. Thanks to Ake Sandgren for the bug + report. See ticket #1150. +- Fixed vector collectives in the self module. See ticket #1166. +- Fixed some data-type engine bugs: an indexing bug, and an alignment bug. + See ticket #1165. +- Only set the MPI_APPNUM attribute if it is defined. See ticket + #1164. + + +1.2.4: 26 Sep 2007 +------------------ + +- Really added support for TotalView/DDT parallel debugger message queue + debugging (it was mistakenly listed as "added" in the 1.2 release). +- Fixed a build issue with GNU/kFreeBSD. Thanks to Petr Salinger for + the patch. +- Added missing MPI_FILE_NULL constant in Fortran. Thanks to + Bernd Schubert for bringing this to our attention. +- Change such that the UDAPL BTL is now only built in Linux when + explicitly specified via the --with-udapl configure command line + switch. +- Fixed an issue with umask not being propagated when using the TM + launcher. +- Fixed behavior if number of slots is not the same on all bproc nodes. +- Fixed a hang on systems without GPR support (ex. Cray XT3/4). +- Prevent users of 32-bit MPI apps from requesting >= 2GB of shared + memory. +- Added a Portals MTL. +- Fix 0 sized MPI_ALLOC_MEM requests. Thanks to Lisandro Dalcin for + pointing out the problem. +- Fixed a segfault crash on large SMPs when doing collectives. +- A variety of fixes for Cray XT3/4 class of machines. +- Fixed which error handler is used when MPI_COMM_SELF is passed + to MPI_COMM_FREE. Thanks to Lisandro Dalcini for the bug report. +- Fixed compilation on platforms that don't have hton/ntoh. +- Fixed a logic problem in the fortran binding for MPI_TYPE_MATCH_SIZE. + Thanks to Jeff Dusenberry for pointing out the problem and supplying + the fix. +- Fixed a problem with MPI_BOTTOM in various places of the f77-interface. + Thanks to Daniel Spangberg for bringing this up. +- Fixed problem where MPI-optional Fortran datatypes were not + correctly initialized. +- Fixed several problems with stdin/stdout forwarding. +- Fixed overflow problems with the sm mpool MCA parameters on large SMPs. +- Added support for the DDT parallel debugger via orterun's --debug + command line option. +- Added some sanity/error checks to the openib MCA parameter parsing + code. +- Updated the udapl BTL to use RDMA capabilities. +- Allow use of the BProc head node if it was allocated to the user. + Thanks to Sean Kelly for reporting the problem and helping debug it. +- Fixed a ROMIO problem where non-blocking I/O errors were not properly + reported to the user. +- Made remote process launch check the $SHELL environment variable if + a valid shell was not otherwise found for the user. + Thanks to Alf Wachsmann for the bugreport and suggested fix. +- Added/updated some vendor IDs for a few openib HCAs. +- Fixed a couple of failures that could occur when specifying devices + for use by the OOB. +- Removed dependency on sysfsutils from the openib BTL for + libibverbs >=v1.1 (i.e., OFED 1.2 and beyond). + + +1.2.3: 20 Jun 2007 +------------------ + +- Fix a regression in comm_spawn functionality that inadvertently + caused the mapping of child processes to always start at the same + place. Thanks to Prakash Velayutham for helping discover the + problem. +- Fix segfault when a user's home directory is unavailable on a remote + node. Thanks to Guillaume Thomas-Collignon for bringing the issue + to our attention. +- Fix MPI_IPROBE to properly handle MPI_STATUS_IGNORE on mx and psm + MTLs. Thanks to Sophia Corwell for finding this and supplying a + reproducer. +- Fix some error messages in the tcp BTL. +- Use _NSGetEnviron instead of environ on Mac OS X so that there + are no undefined symbols in the shared libraries. +- On OS X, when MACOSX_DEPLOYMENT_TARGET is 10.3 or higher, support + building the Fortran 90 bindings as a shared library. Thanks to + Jack Howarth for his advice on making this work. +- No longer require extra include flag for the C++ bindings. +- Fix detection of weak symbols support with Intel compilers. +- Fix issue found by Josh England: ompi_info would not show framework + MCA parameters set in the environment properly. +- Rename the oob_tcp_include/exclude MCA params to oob_tcp_if_include/exclude + so that they match the naming convention of the btl_tcp_if_include/exclude + params. The old names are depreciated, but will still work. +- Add -wd as a synonym for the -wdir orterun/mpirun option. +- Fix the mvapi BTL to compile properly with compilers that do not support + anonymous unions. Thanks to Luis Kornblueh for reporting the bug. + + +1.2.2: 16 May 2007 +------------------ + +- Fix regression in 1.2.1 regarding the handling of $CC with both + absolute and relative path names. +- Fix F90 array of status dimensions. Thanks to Randy Bramley for + noticing the problem. +- Add btl_openib_ib_pkey_value MCA parameter for controlling IB port selection. +- Fixed a variety of threading/locking bugs. +- Fixed some compiler warnings associated with ROMIO, OS X, and gridengine. +- If pbs-config can be found, use it to look for TM support. Thanks + to Bas van der Vlies for the inspiration and preliminary work. +- Fixed a deadlock in orterun when the rsh PLS encounters some errors. + + +1.2.1: 25 Apr 2007 +------------------ + +- Fixed a number of connection establishment errors in the TCP out- + of-band messaging system. +- Fixed a memory leak when using mpi_comm calls. + Thanks to Bas van der Vlies for reporting the problem. +- Fixed various memory leaks in OPAL and ORTE. +- Improved launch times when using TM (PBS Pro, Torque, Open PBS). +- Fixed mpi_leave_pinned to work for all datatypes. +- Fix functionality allowing users to disable sbrk() (the + mpool_base_disable_sbrk MCA parameter) on platforms that support it. +- Fixed a pair of problems with the TCP "listen_thread" mode for the + oob_tcp_listen_mode MCA parameter that would cause failures when + attempting to launch applications. +- Fixed a segfault if there was a failure opening a BTL MX endpoint. +- Fixed a problem with mpirun's --nolocal option introduced in 1.2. +- Re-enabled MPI_COMM_SPAWN_MULTIPLE from singletons. +- LoadLeveler and TM configure fixes, Thanks to Martin Audet for the + bug report. +- Various C++ MPI attributes fixes. +- Fixed issues with backtrace code on 64 bit Intel & PPC OS X builds. +- Fixed issues with multi-word CC variables and libtool. + Thanks to Bert Wesarg for the bug reports. +- Fix issue with non-uniform node naming schemes in SLURM. +- Fix file descriptor leak in the Grid Engine/N1GE support. +- Fix compile error on OS X 10.3.x introduced with Open MPI 1.1.5. +- Implement MPI_TYPE_CREATE_DARRAY function (was in 1.1.5 but not 1.2). +- Recognize zsh shell when using rsh/ssh for launching MPI jobs. +- Ability to set the OPAL_DESTDIR or OPAL_PREFIX environment + variables to "re-root" an existing Open MPI installation. +- Always include -I for Fortran compiles, even if the prefix is + /usr/local. +- Support for "fork()" in MPI applications that use the + OpenFabrics stack (OFED v1.2 or later). +- Support for setting specific limits on registered memory. + + +1.2: 15 Mar 2007 +---------------- + +- Fixed race condition in the shared memory fifo's, which led to + orphaned messages. +- Corrected the size of the shared memory file - subtracted out the + space the header was occupying. +- Add support for MPI_2COMPLEX and MPI_2DOUBLE_COMPLEX. +- Always ensure to create $(includedir)/openmpi, even if the C++ + bindings are disabled so that the wrapper compilers don't point to + a directory that doesn't exist. Thanks to Martin Audet for + identifying the problem. +- Fixes for endian handling in MPI process startup. +- Openib BTL initialization fixes for cases where MPI processes in the + same job has different numbers of active ports on the same physical + fabric. +- Print more descriptive information when displaying backtraces on + OS's that support this functionality, such as the hostname and PID + of the process in question. +- Fixes to properly handle MPI exceptions in C++ on communicators, + windows, and files. +- Much more reliable runtime support, particularly with regards to MPI + job startup scalability, BProc support, and cleanup in failure + scenarios (e.g., MPI_ABORT, MPI processes abnormally terminating, + etc.). +- Significant performance improvements for MPI collectives, + particularly on high-speed networks. +- Various fixes in the MX BTL component. +- Fix C++ typecast problems with MPI_ERRCODES_IGNORE. Thanks to + Satish Balay for bringing this to our attention. +- Allow run-time specification of the maximum amount of registered + memory for OpenFabrics and GM. +- Users who utilize the wrapper compilers (e.g., mpicc and mpif77) + will not notice, but the underlying library names for ORTE and OPAL + have changed to libopen-rte and libopen-pal, respectively (listed + here because there are undoubtedly some users who are not using the + wrapper compilers). +- Many bug fixes to MPI-2 one-sided support. +- Added support for TotalView message queue debugging. +- Fixes for MPI_STATUS_SET_ELEMENTS. +- Print better error messages when mpirun's "-nolocal" is used when + there is only one node available. +- Added man pages for several Open MPI executables and the MPI API + functions. +- A number of fixes for Alpha platforms. +- A variety of Fortran API fixes. +- Build the Fortran MPI API as a separate library to allow these + functions to be profiled properly. +- Add new --enable-mpirun-prefix-by-default configure option to always + imply the --prefix option to mpirun, preventing many rsh/ssh-based + users from needing to modify their shell startup files. +- Add a number of missing constants in the C++ bindings. +- Added tight integration with Sun N1 Grid Engine (N1GE) 6 and the + open source Grid Engine. +- Allow building the F90 MPI bindings as shared libraries for most + compilers / platforms. Explicitly disallow building the F90 + bindings as shared libraries on OS X because of complicated + situations with Fortran common blocks and lack of support for + unresolved common symbols in shared libraries. +- Added stacktrace support for Solaris and Mac OS X. +- Update event library to libevent-1.1b. +- Fixed standards conformance issues with MPI_ERR_TRUNCATED and + setting MPI_ERROR during MPI_TEST/MPI_WAIT. +- Addition of "cm" PML to better support library-level matching + interconnects, with support for Myrinet/MX, and QLogic PSM-based + networks. +- Addition of "udapl" BTL for transport across uDAPL interconnects. +- Really check that the $CXX given to configure is a C++ compiler + (not a C compiler that "sorta works" as a C++ compiler). +- Properly check for local host only addresses properly, looking + for 127.0.0.0/8, rather than just 127.0.0.1. + + +1.1.5: 19 Mar 2007 +------------------ + +- Implement MPI_TYPE_CREATE_DARRAY function. +- Fix race condition in shared memory BTL startup that could cause MPI + applications to hang in MPI_INIT. +- Fix syntax error in a corner case of the event library. Thanks to + Bert Wesarg for pointing this out. +- Add new MCA parameter (mpi_preconnect_oob) for pre-connecting the + "out of band" channels between all MPI processes. Most helpful for + MPI applications over InfiniBand where process A sends an initial + message to process B, but process B does not enter the MPI library + for a long time. +- Fix for a race condition in shared memory locking semantics. +- Add major, minor, and release version number of Open MPI to mpi.h. + Thanks to Martin Audet for the suggestion. +- Fix the "restrict" compiler check in configure. +- Fix a problem with argument checking in MPI_TYPE_CREATE_SUBARRAY. +- Fix a problem with compiling the XGrid components with non-gcc + compilers. + + +1.1.4: 30 Jan 2007 +------------------ + +- Fixed 64-bit alignment issues with TCP interface detection on + intel-based OS X machines. +- Adjusted TCP interface selection to automatically ignore Linux + channel-bonded slave interfaces. +- Fixed the type of the first parameter to the MPI F90 binding for + MPI_INITIALIZED. Thanks to Tim Campbell for pointing out the + problem. +- Fix a bunch of places in the Fortran MPI bindings where (MPI_Fint*) + was mistakenly being used instead of (MPI_Aint*). +- Fixes for fortran MPI_STARTALL, which could sometimes return + incorrect request values. Thanks to Tim Campbell for pointing out + the problem. +- Include both pre- and post-MPI-2 errata bindings for + MPI::Win::Get_attr. +- Fix math error on Intel OS X platforms that would greatly increase + shared memory latency. +- Fix type casting issue with MPI_ERRCODES_IGNORE that would cause + errors when using a C++ compiler. Thanks to Barry Smith for + bringing this to our attention. +- Fix possible segmentation fault during shutdown when using the + MX BTL. + + +1.1.3: 26 Jan 2007 +------------------ + +- Remove the "hierarch" coll component; it was not intended to be + included in stable releases yet. +- Fix a race condition with stdout/stderr not appearing properly from + all processes upon termination of an MPI job. +- Fix internal accounting errors with the self BTL. +- Fix typos in the code path for when sizeof(int) != sizeof(INTEGER) + in the MPI F77 bindings functions. Thanks to Pierre-Matthieu + Anglade for bringing this problem to our attention. +- Fix for a memory leak in the derived datatype function + ompi_ddt_duplicate(). Thanks to Andreas Schafer for reporting, + diagnosing, and patching the leak. +- Used better performing basic algorithm for MPI_ALLGATHERV. +- Added a workaround for a bug in the Intel 9.1 C++ compiler (all + versions up to and including 20060925) in the MPI C++ bindings that + caused run-time failures. Thanks to Scott Weitzenkamp for reporting + this problem. +- Fix MPI_SIZEOF implementation in the F90 bindings for COMPLEX + variable types. +- Fixes for persistent requests involving MPI_PROC_NULL. Thanks to + Lisandro Dalcin for reporting the problem. +- Fixes to MPI_TEST* and MPI_WAIT* for proper MPI exception reporting. + Thanks to Lisandro Dalcin for finding the issue. +- Various fixes for MPI generalized request handling; addition of + missing MPI::Grequest functionality to the C++ bindings. +- Add "mpi_preconnect_all" MCA parameter to force wireup of all MPI + connections during MPI_INIT (vs. making connections lazily whenever + the first MPI communication occurs between a pair of peers). +- Fix a problem for when $FC and/or $F77 were specified as multiple + tokens. Thanks to Orion Poplawski for identifying the problem and + to Ralf Wildenhues for suggesting the fix. +- Fix several MPI_*ERRHANDLER* functions and MPI_GROUP_TRANSLATE_RANKS + with respect to what arguments they allowed and the behavior that + they effected. Thanks to Lisandro Dalcin for reporting the + problems. + + +1.1.2: 18 Oct 2006 +------------------ + +- Really fix Fortran status handling in MPI_WAITSOME and MPI_TESTSOME. +- Various datatype fixes, reported by several users as causing + failures in the BLACS testing suite. Thanks to Harald Forbert, Ake + Sandgren and, Michael Kluskens for reporting the problem. +- Correctness and performance fixes for heterogeneous environments. +- Fixed a error in command line parsing on some platforms (causing + mpirun to crash without doing anything). +- Fix for initialization hangs on 64 bit Mac OS X PowerPC systems. +- Fixed some memory allocation problems in mpirun that could cause + random problems if "-np" was not specified on the command line. +- Add Kerberos authentication support for XGrid. +- Added LoadLeveler support for jobs larger than 128 tasks. +- Fix for large-sized Fortran LOGICAL datatypes. +- Fix various error checking in MPI_INFO_GET_NTHKEY and + MPI_GROUP_TRANSLATE_RANKS, and some collective operations + (particularly with regards to MPI_IN_PLACE). Thanks to Lisandro + Dalcin for reporting the problems. +- Fix receiving messages to buffers allocated by MPI_ALLOC_MEM. +- Fix a number of race conditions with the MPI-2 Onesided + interface. +- Fix the "tuned" collective componenete where some cases where + MPI_BCAST could hang. +- Update TCP support to support non-uniform TCP environments. +- Allow the "poe" RAS component to be built on AIX or Linux. +- Only install mpif.h if the rest of the Fortran bindings are + installed. +- Fixes for BProc node selection. +- Add some missing Fortran MPI-2 IO constants. + + +1.1.1: 28 Aug 2006 +------------------ + +- Fix for Fortran string handling in various MPI API functions. +- Fix for Fortran status handling in MPI_WAITSOME and MPI_TESTSOME. +- Various fixes for the XL compilers. +- Automatically disable using mallot() on AIX. +- Memory fixes for 64 bit platforms with registering MCA parameters in + the self and MX BTL components. +- Fixes for BProc to support oversubscription and changes to the + mapping algorithm so that mapping processes "by slot" works as + expected. +- Fixes for various abort cases to not hang and clean up nicely. +- If using the Intel 9.0 v20051201 compiler on an IA64 platform, the + ptmalloc2 memory manager component will automatically disable + itself. Other versions of the Intel compiler on this platform seem + to work fine (e.g., 9.1). +- Added "host" MPI_Info key to MPI_COMM_SPAWN and + MPI_COMM_SPAWN_MULTIPLE. +- Add missing C++ methods: MPI::Datatype::Create_indexed_block, + MPI::Datatype::Create_resized, MPI::Datatype::Get_true_extent. +- Fix OSX linker issue with Fortran bindings. +- Fixed MPI_COMM_SPAWN to start spawning new processes in slots that + (according to Open MPI) are not already in use. +- Added capability to "mpirun a.out" (without specifying -np) that + will run on all currently-allocated resources (e.g., within a batch + job such as SLURM, Torque, etc.). +- Fix a bug with one particular case of MPI_BCAST. Thanks to Doug + Gregor for identifying the problem. +- Ensure that the shared memory mapped file is only created when there + is more than one process on a node. +- Fixed problems with BProc stdin forwarding. +- Fixed problem with MPI_TYPE_INDEXED datatypes. Thanks to Yven + Fournier for identifying this problem. +- Fix some thread safety issues in MPI attributes and the openib BTL. +- Fix the BProc allocator to not potentially use the same resources + across multiple ORTE universes. +- Fix gm resource leak. +- More latency reduction throughout the code base. +- Make the TM PLS (PBS Pro, Torque, Open PBS) more scalable, and fix + some latent bugs that crept in v1.1. Thanks to the Thunderbird crew + at Sandia National Laboratories and Martin Schaffoner for access to + testing facilities to make this happen. +- Added new command line options to mpirun: + --nolocal: Do not run any MPI processes on the same node as mpirun + (compatibility with the OSC mpiexec launcher) + --nooversubscribe: Abort if the number of processes requested would + cause oversubscription + --quiet / -q: do not show spurious status messages + --version / -V: show the version of Open MPI +- Fix bus error in XGrid process starter. Thanks to Frank from the + Open MPI user's list for identifying the problem. +- Fix data size mismatches that caused memory errors on PPC64 + platforms during the startup of the openib BTL. +- Allow propagation of SIGUSR1 and SIGUSR2 signals from mpirun to + back-end MPI processes. +- Add missing MPI::Is_finalized() function. + + +1.1: 23 Jun 2006 +---------------- + +- Various MPI datatype fixes, optimizations. +- Fixed various problems on the SPARC architecture (e.g., not + correctly aligning addresses within structs). +- Improvements in various run-time error messages to be more clear + about what they mean and where the errors are occurring. +- Various fixes to mpirun's handling of --prefix. +- Updates and fixes for Cray/Red Storm support. +- Major improvements to the Fortran 90 MPI bindings: + - General improvements in compile/linking time and portability + between different F90 compilers. + - Addition of "trivial", "small" (the default), and "medium" + Fortran 90 MPI module sizes (v1.0.x's F90 module was + equivalent to "medium"). See the README file for more + explanation. + - Fix various MPI F90 interface functions and constant types to + match. Thanks to Michael Kluskens for pointing out the problems + to us. +- Allow short messagees to use RDMA (vs. send/receive semantics) to a + limited number peers in both the mvapi and openib BTL components. + This reduces communication latency over IB channels. +- Numerous performance improvements throughout the entire code base. +- Many minor threading fixes. +- Add a define OMPI_SKIP_CXX to allow the user to skip the mpicxx.h from + being included in mpi.h. It allows the user to compile C code with a CXX + compiler without including the CXX bindings. +- PERUSE support has been added. In order to activate it add + --enable-peruse to the configure options. All events described in + the PERUSE 2.0 draft are supported, plus one Open MPI + extension. PERUSE_COMM_REQ_XFER_CONTINUE allow to see how the data + is segmented internally, using multiple interfaces or the pipeline + engine. However, this version only support one event of each type + simultaneously attached to a communicator. +- Add support for running jobs in heterogeneous environments. + Currently supports environments with different endianness and + different representations of C++ bool and Fortran LOGICAL. + Mismatched sizes for other datatypes is not supported. +- Open MPI now includes an implementation of the MPI-2 One-Sided + Communications specification. +- Open MPI is now configurable in cross-compilation environments. + Several Fortran 77 and Fortran 90 tests need to be pre-seeded with + results from a config.cache-like file. +- Add --debug option to mpirun to generically invoke a parallel debugger. + + +1.0.3: Not released (all fixes included in 1.1) +----------------------------------------------- + +- Fix a problem noted by Chris Hennes where MPI_INFO_SET incorrectly + disallowed long values. +- Fix a problem in the launch system that could cause inconsistent + launch behavior, particularly when launching large jobs. +- Require that the openib BTL find . Thanks to Josh + Aune for the suggestion. +- Include updates to support the upcoming Autoconf 2.60 and Libtool + 2.0. Thanks to Ralf Wildenhues for all the work! +- Fix bug with infinite loop in the "round robin" process mapper. + Thanks to Paul Donohue for reporting the problem. +- Enusre that memory hooks are removed properly during MPI_FINALIZE. + Thanks to Neil Ludban for reporting the problem. +- Various fixes to the included support for ROMIO. +- Fix to ensure that MPI_LONG_LONG and MPI_LONG_LONG_INT are actually + synonyms, as defined by the MPI standard. Thanks to Martin Audet + for reporting this. +- Fix Fortran 90 configure tests to properly utilize LDFLAGS and LIBS. + Thanks to Terry Reeves for reporting the problem. +- Fix shared memory progression in asynchronous progress scenarios. + Thanks to Mykael Bouquey for reporting the problem. +- Fixed back-end operations for predefined MPI_PROD for some + datatypes. Thanks to Bert Wesarg for reporting this. +- Adapted configure to be able to handle Torque 2.1.0p0's (and above) + new library name. Thanks to Brock Palen for pointing this out and + providing access to a Torque 2.1.0p0 cluster to test with. +- Fixed situation where mpirun could set a shell pipeline's stdout + to non-blocking, causing the shell pipeline to prematurely fail. + Thanks to Darrell Kresge for figuring out what was happening. +- Fixed problems with leave_pinned that could cause Badness with the + mvapi BTL. +- Fixed problems with MPI_FILE_OPEN and non-blocking MPI-2 IO access. +- Fixed various InfiniBand port matching issues during startup. + Thanks to Scott Weitzenkamp for identifying these problems. +- Fixed various configure, build and run-time issues with ROMIO. + Thanks to Dries Kimpe for bringing them to our attention. +- Fixed error in MPI_COMM_SPLIT when dealing with intercommunicators. + Thanks to Bert Wesarg for identifying the problem. +- Fixed backwards handling of "high" parameter in MPI_INTERCOMM_MERGE. + Thanks to Michael Kluskens for pointing this out to us. +- Fixed improper handling of string arguments in Fortran bindings + for MPI-IO functionality +- Fixed segmentation fault with 64 bit applications on Solaris when + using the shared memory transports. +- Fixed MPI_COMM_SELF attributes to free properly at the beginning of + MPI_FINALIZE. Thanks to Martin Audet for bringing this to our + attention. +- Fixed alignment tests for cross-compiling to not cause errors with + recent versions of GCC. + + +1.0.2: 7 Apr 2006 +----------------- + +- Fixed assembly race condition on AMD64 platforms. +- Fixed residual .TRUE. issue with copying MPI attributes set from + Fortran. +- Remove unnecessary logic from Solaris pty I/O forwarding. Thanks to + Francoise Roch for bringing this to our attention. +- Fixed error when count = 0 was given for multiple completion MPI + functions (MPI_TESTSOME, MPI_TESTANY, MPI_TESTALL, MPI_WAITSOME, + MPI_WAITANY, MPI_WAITALL). +- Better handling in MPI_ABORT for when peer processes have already + died, especially under some resource managers. +- Random updates to README file, to include notes about the Portland + compilers. +- Random, small threading fixes to prevent deadlock. +- Fixed a problem with handling long mpirun app files. Thanks to Ravi + Manumachu for identifying the problem. +- Fix handling of strings in several of the Fortran 77 bindings. +- Fix LinuxPPC assembly issues. Thanks to Julian Seward for reporting + the problem. +- Enable pty support for standard I/O forwarding on platforms that + have ptys but do not have openpty(). Thanks to Pierre Valiron for + bringing this to our attention. +- Disable inline assembly for PGI compilers to avoid compiler errors. + Thanks to Troy Telford for bringing this to our attention. +- Added MPI_UNSIGNED_CHAR and MPI_SIGNED_CHAR to the allowed reduction + types. +- Fix a segv in variable-length message displays on Opterons running + Solaris. Thanks to Pierre Valiron for reporting the issue. +- Added MPI_BOOL to the intrinsic reduction operations MPI_LAND, + MPI_LOR, MPI_LXOR. Thanks to Andy Selle for pointing this out to us. +- Fixed TCP BTL network matching logic during MPI_INIT; in some cases + on multi-NIC nodes, a NIC could get paired with a NIC on another + network (typically resulting in deadlock). Thanks to Ken Mighell + for pointing this out to us. +- Change the behavior of orterun (mpirun, mpirexec) to search for + argv[0] and the cwd on the target node (i.e., the node where the + executable will be running in all systems except BProc, where the + searches are run on the node where orterun is invoked). +- Fix race condition in shared memory transport that could cause + crashes on machines with weak memory consistency models (including + POWER/PowerPC machines). +- Fix warnings about setting read-only MCA parameters on bproc systems. +- Change the exit status set by mpirun when an application process is + killed by a signal. The exit status is now set to signo + 128, which + conforms with the behavior of (almost) all shells. +- Correct a datatype problem with the convertor when partially + unpacking data. Now we can position the convertor to any position + not only on the predefined types boundaries. Thanks to Yvan Fournier + for reporting this to us. +- Fix a number of standard I/O forwarding issues, including the + ability to background mpirun and a loss of data issue when + redirecting mpirun's standard input from a file. +- Fixed bug in ompi_info where rcache and bml MCA parameters would not + be displayed. +- Fixed umask issues in the session directory. Thanks to Glenn Morris + for reporting this to us. +- Fixed tcsh-based LD_LIBRARY_PATH issues with --prefix. Thanks to + Glen Morris for identifying the problem and suggesting the fix. +- Removed extraneous \n's when setting PATH and LD_LIBRARY_PATH in the + rsh startup. Thanks to Glen Morris for finding these typos. +- Fixed missing constants in MPI C++ bindings. +- Fixed some errors caused by threading issues. +- Fixed openib BTL flow control logic to not overrun the number of + send wqes available. +- Update to match newest OpenIB user-level library API. Thanks to + Roland Dreier for submitting this patch. +- Report errors properly when failing to register memory in the openib + BTL. +- Reduce memory footprint of openib BTL. +- Fix parsing problem with mpirun's "-tv" switch. Thanks to Chris + Gottbrath for supplying the fix. +- Fix Darwin net/if.h configure warning. +- The GNU assembler unbelievably defaults to making stacks executable. + So when using gas, add flags to explicitly tell it to not make + stacks executable (lame but necessary). +- Add missing MPI::Request::Get_status() methods. Thanks to Bill + Saphir for pointing this out to us. +- Improved error messages on memory registration errors (e.g., when + using high-speed networks). +- Open IB support now checks firmware for how many outstanding RDMA + requests are supported. Thanks to Mellanox for pointing this out to + us. +- Enable printing of stack traces in MPI processes upon SIGBUS, + SIGSEGV, and SIGFPE if the platform supports it. +- Fixed F90 compilation support for the Lahey compiler. +- Fixed issues with ROMIO shared library support. +- Fixed internal accounting problems with rsh support. +- Update to GNU Libtool 1.5.22. +- Fix error in configure script when setting CCAS to ias (the Intel + assembler). +- Added missing MPI::Intercomm collectives. +- Fixed MPI_IN_PLACE handling for Fortran collectives. +- Fixed some more C++ const_cast<> issues. Thanks for Martin Audet + (again) for bringing this to our attention. +- Updated ROMIO with the version from MPICH 1.2.7p1, marked as version + 2005-06-09. +- Fixes for some cases where the use of MPI_BOTTOM could cause + problems. +- Properly handle the case where an mVAPI does not have shared receive + queue support (such as the one shipped by SilverStorm / Infinicon + for OS X). + + +1.0.1: 12 Dec 2005 +------------------ + +- Fixed assembly on Solaris AMD platforms. Thanks to Pierre Valiron + for bringing this to our attention. +- Fixed long messages in the send-to-self case. +- Ensure that when the "leave_pinned" option is used, the memory hooks + are also enabled. Thanks to Gleb Natapov for pointing this out. +- Fixed compile errors for IRIX. +- Allow hostfiles to have integer host names (for BProc clusters). +- Fixed a problem with message matching of out-of-order fragments in + multiple network device scenarios. +- Converted all the C++ MPI bindings to use proper const_cast<>'s + instead of old C-style casts to get rid of const-ness. Thanks to + Martin Audet for raising the issue with us. +- Converted MPI_Offset to be a typedef instead of a #define because it + causes problems for some C++ parsers. Thanks to Martin Audet for + bringing this to our attention. +- Improved latency of TCP BTL. +- Fixed index value in MPI_TESTANY to be MPI_UNDEFINED if some + requests were not MPI_REQUEST_NULL, but no requests finished. +- Fixed several Fortran MPI API implementations that incorrectly used + integers instead of logicals or address-sized integers. +- Fix so that Open MPI correctly handles the Fortran value for .TRUE., + regardless of what the Fortran compiler's value for .TRUE. is. +- Improved scalability of MX startup. +- Fix datatype offset handling in the coll basic component's + MPI_SCATTERV implementation. +- Fix EOF handling on stdin. +- Fix missing MPI_F_STATUS_IGNORE and MPI_F_STATUSES_IGNORE + instanatiations. Thanks to Anthony Chan for pointing this out. +- Add a missing value for MPI_WIN_NULL in mpif.h. +- Bring over some fixes for the sm btl that somehow didn't make it + over from the trunk before v1.0. Thanks to Beth Tibbitts and Bill + Chung for helping identify this issue. +- Bring over some fixes for the iof that somehow didn't make it over + from the trunk before v1.0. +- Fix for --with-wrapper-ldflags handling. Thanks to Dries Kimpe for + pointing this out to us. + + +1.0: 17 Nov 2005 +---------------- + +Initial public release. diff --git a/README b/README new file mode 100644 index 00000000..8fe57010 --- /dev/null +++ b/README @@ -0,0 +1,2126 @@ +Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana + University Research and Technology + Corporation. All rights reserved. +Copyright (c) 2004-2015 The University of Tennessee and The University + of Tennessee Research Foundation. All rights + reserved. +Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, + University of Stuttgart. All rights reserved. +Copyright (c) 2004-2007 The Regents of the University of California. + All rights reserved. +Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +Copyright (c) 2006-2011 Mellanox Technologies. All rights reserved. +Copyright (c) 2006-2012 Oracle and/or its affiliates. All rights reserved. +Copyright (c) 2007 Myricom, Inc. All rights reserved. +Copyright (c) 2008-2016 IBM Corporation. All rights reserved. +Copyright (c) 2010 Oak Ridge National Labs. All rights reserved. +Copyright (c) 2011 University of Houston. All rights reserved. +Copyright (c) 2013-2015 Intel, Inc. All rights reserved +Copyright (c) 2015 NVIDIA Corporation. All rights reserved. +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + +=========================================================================== + +When submitting questions and problems, be sure to include as much +extra information as possible. This web page details all the +information that we request in order to provide assistance: + + http://www.open-mpi.org/community/help/ + +The best way to report bugs, send comments, or ask questions is to +sign up on the user's and/or developer's mailing list (for user-level +and developer-level questions; when in doubt, send to the user's +list): + + users@lists.open-mpi.org + devel@lists.open-mpi.org + +Because of spam, only subscribers are allowed to post to these lists +(ensure that you subscribe with and post from exactly the same e-mail +address -- joe@example.com is considered different than +joe@mycomputer.example.com!). Visit these pages to subscribe to the +lists: + + http://lists.open-mpi.org/mailman/listinfo/users + http://lists.open-mpi.org/mailman/listinfo/devel + +Thanks for your time. + +=========================================================================== + +Much, much more information is also available in the Open MPI FAQ: + + https://www.open-mpi.org/faq/ + +=========================================================================== + +The following abbreviated list of release notes applies to this code +base as of this writing (April 2015): + +General notes +------------- + +- Open MPI now includes two public software layers: MPI and OpenSHMEM. + Throughout this document, references to Open MPI implicitly include + both of these layers. When distinction between these two layers is + necessary, we will reference them as the "MPI" and "OSHMEM" layers + respectively. + +- OpenSHMEM is a collaborative effort between academia, industry, and + the U.S. Government to create a specification for a standardized API + for parallel programming in the Partitioned Global Address Space + (PGAS). For more information about the OpenSHMEM project, including + access to the current OpenSHMEM specification, please visit: + + http://openshmem.org/ + + This OpenSHMEM implementation is provided on an experimental basis; + it has been lightly tested and will only work in Linux environments. + Although this implementation attempts to be portable to multiple + different environments and networks, it is still new and will likely + experience growing pains typical of any new software package. + End-user feedback is greatly appreciated. + + This implementation will currently most likely provide optimal + performance on Mellanox hardware and software stacks. Overall + performance is expected to improve as other network vendors and/or + institutions contribute platform specific optimizations. + + See below for details on how to enable the OpenSHMEM implementation. + +- Open MPI includes support for a wide variety of supplemental + hardware and software package. When configuring Open MPI, you may + need to supply additional flags to the "configure" script in order + to tell Open MPI where the header files, libraries, and any other + required files are located. As such, running "configure" by itself + may not include support for all the devices (etc.) that you expect, + especially if their support headers / libraries are installed in + non-standard locations. Network interconnects are an easy example + to discuss -- Libfabric and OpenFabrics networks, for example, both + have supplemental headers and libraries that must be found before + Open MPI can build support for them. You must specify where these + files are with the appropriate options to configure. See the + listing of configure command-line switches, below, for more details. + +- The majority of Open MPI's documentation is here in this file, the + included man pages, and on the web site FAQ + (https://www.open-mpi.org/). + +- Note that Open MPI documentation uses the word "component" + frequently; the word "plugin" is probably more familiar to most + users. As such, end users can probably completely substitute the + word "plugin" wherever you see "component" in our documentation. + For what it's worth, we use the word "component" for historical + reasons, mainly because it is part of our acronyms and internal API + function calls. + +- The run-time systems that are currently supported are: + - rsh / ssh + - LoadLeveler + - PBS Pro, Torque + - Platform LSF (v7.0.2 and later) + - SLURM + - Cray XE, XC, and XK + - Oracle Grid Engine (OGE) 6.1, 6.2 and open source Grid Engine + +- Systems that have been tested are: + - Linux (various flavors/distros), 32 bit, with gcc + - Linux (various flavors/distros), 64 bit (x86), with gcc, Absoft, + Intel, and Portland (*) + - OS X (10.8, 10.9, 10.10, 10.11), 32 and 64 bit (x86_64), with + XCode and Absoft compilers (*) + + (*) Be sure to read the Compiler Notes, below. + +- Other systems have been lightly (but not fully tested): + - Cygwin 32 & 64 bit with gcc + - ARMv4, ARMv5, ARMv6, ARMv7, ARMv8 + - Other 64 bit platforms (e.g., Linux on PPC64) + - Oracle Solaris 10 and 11, 32 and 64 bit (SPARC, i386, x86_64), + with Oracle Solaris Studio 12.5 + +Compiler Notes +-------------- + +- Open MPI requires a C99-capable compiler to build. + +- Mixing compilers from different vendors when building Open MPI + (e.g., using the C/C++ compiler from one vendor and the Fortran + compiler from a different vendor) has been successfully employed by + some Open MPI users (discussed on the Open MPI user's mailing list), + but such configurations are not tested and not documented. For + example, such configurations may require additional compiler / + linker flags to make Open MPI build properly. + +- In general, the latest versions of compilers of a given vendor's + series have the least bugs. We have seen cases where Vendor XYZ's + compiler version A.B fails to compile Open MPI, but version A.C + (where C>B) works just fine. If you run into a compile failure, you + might want to double check that you have the latest bug fixes and + patches for your compiler. + +- Users have reported issues with older versions of the Fortran PGI + compiler suite when using Open MPI's (non-default) --enable-debug + configure option. Per the above advice of using the most recent + version of a compiler series, the Open MPI team recommends using the + latest version of the PGI suite, and/or not using the --enable-debug + configure option. If it helps, here's what we have found with some + (not comprehensive) testing of various versions of the PGI compiler + suite: + + pgi-8 : NO known good version with --enable-debug + pgi-9 : 9.0-4 known GOOD + pgi-10: 10.0-0 known GOOD + pgi-11: NO known good version with --enable-debug + pgi-12: 12.10 known BAD due to C99 compliance issues, and 12.8 + and 12.9 both known BAD with --enable-debug + pgi-13: 13.10 known GOOD + +- Similarly, there is a known Fortran PGI compiler issue with long + source directory path names that was resolved in 9.0-4 (9.0-3 is + known to be broken in this regard). + +- IBM's xlf compilers: NO known good version that can build/link + the MPI f08 bindings or build/link the OSHMEM Fortran bindings. + +- On NetBSD-6 (at least AMD64 and i386), and possibly on OpenBSD, + libtool misidentifies properties of f95/g95, leading to obscure + compile-time failures if used to build Open MPI. You can work + around this issue by ensuring that libtool will not use f95/g95 + (e.g., by specifying FC=, or otherwise ensuring + a different Fortran compiler will be found earlier in the path than + f95/g95), or by disabling the Fortran MPI bindings with + --disable-mpi-fortran. + +- Absoft 11.5.2 plus a service pack from September 2012 (which Absoft + says is available upon request), or a version later than 11.5.2 + (e.g., 11.5.3), is required to compile the new Fortran mpi_f08 + module. + +- Open MPI does not support the Sparc v8 CPU target. However, + as of Solaris Studio 12.1, and later compilers, one should not + specify -xarch=v8plus or -xarch=v9. The use of the options + -m32 and -m64 for producing 32 and 64 bit targets, respectively, + are now preferred by the Solaris Studio compilers. GCC may + require either "-m32" or "-mcpu=v9 -m32", depending on GCC version. + +- It has been noticed that if one uses CXX=sunCC, in which sunCC + is a link in the Solaris Studio compiler release, that the OMPI + build system has issue with sunCC and does not build libmpi_cxx.so. + Therefore the make install fails. So we suggest that one should + use CXX=CC, which works, instead of CXX=sunCC. + +- If one tries to build OMPI on Ubuntu with Solaris Studio using the C++ + compiler and the -m32 option, you might see a warning: + + CC: Warning: failed to detect system linker version, falling back to + custom linker usage + + And the build will fail. One can overcome this error by either + setting LD_LIBRARY_PATH to the location of the 32 bit libraries (most + likely /lib32), or giving LDFLAGS="-L/lib32 -R/lib32" to the configure + command. Officially, Solaris Studio is not supported on Ubuntu Linux + distributions, so additional problems might be incurred. + +- Open MPI does not support the gccfss compiler (GCC For SPARC + Systems; a now-defunct compiler project from Sun). + +- At least some versions of the Intel 8.1 compiler seg fault while + compiling certain Open MPI source code files. As such, it is not + supported. + +- The Intel 9.0 v20051201 compiler on IA64 platforms seems to have a + problem with optimizing the ptmalloc2 memory manager component (the + generated code will segv). As such, the ptmalloc2 component will + automatically disable itself if it detects that it is on this + platform/compiler combination. The only effect that this should + have is that the MCA parameter mpi_leave_pinned will be inoperative. + +- It has been reported that the Intel 9.1 and 10.0 compilers fail to + compile Open MPI on IA64 platforms. As of 12 Sep 2012, there is + very little (if any) testing performed on IA64 platforms (with any + compiler). Support is "best effort" for these platforms, but it is + doubtful that any effort will be expended to fix the Intel 9.1 / + 10.0 compiler issuers on this platform. + +- Early versions of the Intel 12.1 Linux compiler suite on x86_64 seem + to have a bug that prevents Open MPI from working. Symptoms + including immediate segv of the wrapper compilers (e.g., mpicc) and + MPI applications. As of 1 Feb 2012, if you upgrade to the latest + version of the Intel 12.1 Linux compiler suite, the problem will go + away. + +- Early versions of the Portland Group 6.0 compiler have problems + creating the C++ MPI bindings as a shared library (e.g., v6.0-1). + Tests with later versions show that this has been fixed (e.g., + v6.0-5). + +- The Portland Group compilers prior to version 7.0 require the + "-Msignextend" compiler flag to extend the sign bit when converting + from a shorter to longer integer. This is is different than other + compilers (such as GNU). When compiling Open MPI with the Portland + compiler suite, the following flags should be passed to Open MPI's + configure script: + + shell$ ./configure CFLAGS=-Msignextend CXXFLAGS=-Msignextend \ + --with-wrapper-cflags=-Msignextend \ + --with-wrapper-cxxflags=-Msignextend ... + + This will both compile Open MPI with the proper compile flags and + also automatically add "-Msignextend" when the C and C++ MPI wrapper + compilers are used to compile user MPI applications. + +- Using the MPI C++ bindings with older versions of the Pathscale + compiler on some platforms is an old issue that seems to be a + problem when Pathscale uses a back-end GCC 3.x compiler. Here's a + proposed solution from the Pathscale support team (from July 2010): + + The proposed work-around is to install gcc-4.x on the system and + use the pathCC -gnu4 option. Newer versions of the compiler (4.x + and beyond) should have this fixed, but we'll have to test to + confirm it's actually fixed and working correctly. + + We don't anticipate that this will be much of a problem for Open MPI + users these days (our informal testing shows that not many users are + still using GCC 3.x). Contact Pathscale support if you continue to + have problems with Open MPI's C++ bindings. + +- Using the Absoft compiler to build the MPI Fortran bindings on Suse + 9.3 is known to fail due to a Libtool compatibility issue. + +- MPI Fortran API support has been completely overhauled since the + Open MPI v1.5/v1.6 series. + + ******************************************************************** + ******************************************************************** + *** There is now only a single Fortran MPI wrapper compiler and a + *** single Fortran OSHMEM wrapper compiler: mpifort and oshfort, + *** respectively. mpif77 and mpif90 still exist, but they are + *** symbolic links to mpifort. + ******************************************************************** + *** Similarly, Open MPI's configure script only recognizes the FC + *** and FCFLAGS environment variables (to specify the Fortran + *** compiler and compiler flags, respectively). The F77 and FFLAGS + *** environment variables are IGNORED. + ******************************************************************** + ******************************************************************** + + As a direct result, it is STRONGLY recommended that you specify a + Fortran compiler that uses file suffixes to determine Fortran code + layout (e.g., free form vs. fixed). For example, with some versions + of the IBM XLF compiler, it is preferable to use FC=xlf instead of + FC=xlf90, because xlf will automatically determine the difference + between free form and fixed Fortran source code. + + However, many Fortran compilers allow specifying additional + command-line arguments to indicate which Fortran dialect to use. + For example, if FC=xlf90, you may need to use "mpifort --qfixed ..." + to compile fixed format Fortran source files. + + You can use either ompi_info or oshmem_info to see with which Fortran + compiler Open MPI was configured and compiled. + + There are up to three sets of Fortran MPI bindings that may be + provided depending on your Fortran compiler): + + - mpif.h: This is the first MPI Fortran interface that was defined + in MPI-1. It is a file that is included in Fortran source code. + Open MPI's mpif.h does not declare any MPI subroutines; they are + all implicit. + + - mpi module: The mpi module file was added in MPI-2. It provides + strong compile-time parameter type checking for MPI subroutines. + + - mpi_f08 module: The mpi_f08 module was added in MPI-3. It + provides many advantages over the mpif.h file and mpi module. For + example, MPI handles have distinct types (vs. all being integers). + See the MPI-3 document for more details. + + *** The mpi_f08 module is STRONGLY is recommended for all new MPI + Fortran subroutines and applications. Note that the mpi_f08 + module can be used in conjunction with the other two Fortran + MPI bindings in the same application (only one binding can be + used per subroutine/function, however). Full interoperability + between mpif.h/mpi module and mpi_f08 module MPI handle types + is provided, allowing mpi_f08 to be used in new subroutines in + legacy MPI applications. + + Per the OSHMEM specification, there is only one Fortran OSHMEM binding + provided: + + - shmem.fh: All Fortran OpenSHMEM programs **should** include 'shmem.fh', + and Fortran OSHMEM programs that use constants defined by OpenSHMEM + **MUST** include 'shmem.fh'. + + The following notes apply to the above-listed Fortran bindings: + + - All Fortran compilers support the mpif.h/shmem.fh-based bindings, + with one exception: the MPI_SIZEOF interfaces will only be present + when Open MPI is built with a Fortran compiler that support the + INTERFACE keyword and ISO_FORTRAN_ENV. Most notably, this + excludes the GNU Fortran compiler suite before version 4.9. + + - The level of support provided by the mpi module is based on your + Fortran compiler. + + If Open MPI is built with a non-GNU Fortran compiler, or if Open + MPI is built with the GNU Fortran compiler >= v4.9, all MPI + subroutines will be prototyped in the mpi module. All calls to + MPI subroutines will therefore have their parameter types checked + at compile time. + + If Open MPI is built with an old gfortran (i.e., < v4.9), a + limited "mpi" module will be built. Due to the limitations of + these compilers, and per guidance from the MPI-3 specification, + all MPI subroutines with "choice" buffers are specifically *not* + included in the "mpi" module, and their parameters will not be + checked at compile time. Specifically, all MPI subroutines with + no "choice" buffers are prototyped and will receive strong + parameter type checking at run-time (e.g., MPI_INIT, + MPI_COMM_RANK, etc.). + + Similar to the mpif.h interface, MPI_SIZEOF is only supported on + Fortran compilers that support INTERFACE and ISO_FORTRAN_ENV. + + - The mpi_f08 module is new and has been tested with the Intel + Fortran compiler and gfortran >= 4.9. Other modern Fortran + compilers may also work (but are, as yet, only lightly tested). + It is expected that this support will mature over time. + + Many older Fortran compilers do not provide enough modern Fortran + features to support the mpi_f08 module. For example, gfortran < + v4.9 does provide enough support for the mpi_f08 module. + + You can examine the output of the following command to see all + the Fortran features that are/are not enabled in your Open MPI + installation: + + shell$ ompi_info | grep -i fort + + +General Run-Time Support Notes +------------------------------ + +- The Open MPI installation must be in your PATH on all nodes (and + potentially LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH), if libmpi/libshmem + is a shared library), unless using the --prefix or + --enable-mpirun-prefix-by-default functionality (see below). + +- Open MPI's run-time behavior can be customized via MPI Component + Architecture (MCA) parameters (see below for more information on how + to get/set MCA parameter values). Some MCA parameters can be set in + a way that renders Open MPI inoperable (see notes about MCA + parameters later in this file). In particular, some parameters have + required options that must be included. + + - If specified, the "btl" parameter must include the "self" + component, or Open MPI will not be able to deliver messages to the + same rank as the sender. For example: "mpirun --mca btl tcp,self + ..." + - If specified, the "btl_tcp_if_exclude" parameter must include the + loopback device ("lo" on many Linux platforms), or Open MPI will + not be able to route MPI messages using the TCP BTL. For example: + "mpirun --mca btl_tcp_if_exclude lo,eth1 ..." + +- Running on nodes with different endian and/or different datatype + sizes within a single parallel job is supported in this release. + However, Open MPI does not resize data when datatypes differ in size + (for example, sending a 4 byte MPI_DOUBLE and receiving an 8 byte + MPI_DOUBLE will fail). + + +MPI Functionality and Features +------------------------------ + +- Rank reordering support is available using the TreeMatch library. It + is activated for the graph and dist_graph topologies. + +- All MPI-3 functionality is supported. + +- When using MPI deprecated functions, some compilers will emit + warnings. For example: + + shell$ cat deprecated_example.c + #include + void foo(void) { + MPI_Datatype type; + MPI_Type_struct(1, NULL, NULL, NULL, &type); + } + shell$ mpicc -c deprecated_example.c + deprecated_example.c: In function 'foo': + deprecated_example.c:4: warning: 'MPI_Type_struct' is deprecated (declared at /opt/openmpi/include/mpi.h:1522) + shell$ + +- MPI_THREAD_MULTIPLE support is included, but is only lightly tested. + It likely does not work for thread-intensive applications. Note + that *only* the MPI point-to-point communication functions for the + BTL's listed here are considered thread safe. Other support + functions (e.g., MPI attributes) have not been certified as safe + when simultaneously used by multiple threads. + - tcp + - sm + - self + + Note that Open MPI's thread support is in a fairly early stage; the + above devices may *work*, but the latency is likely to be fairly + high. Specifically, efforts so far have concentrated on + *correctness*, not *performance* (yet). + + YMMV. + +- MPI_REAL16 and MPI_COMPLEX32 are only supported on platforms where a + portable C datatype can be found that matches the Fortran type + REAL*16, both in size and bit representation. + +- The "libompitrace" library is bundled in Open MPI and is installed + by default (it can be disabled via the --disable-libompitrace + flag). This library provides a simplistic tracing of select MPI + function calls via the MPI profiling interface. Linking it in to + your application via (e.g., via -lompitrace) will automatically + output to stderr when some MPI functions are invoked: + + shell$ cd examples/ + shell$ mpicc hello_c.c -o hello_c -lompitrace + shell$ mpirun -np 1 hello_c + MPI_INIT: argc 1 + Hello, world, I am 0 of 1 + MPI_BARRIER[0]: comm MPI_COMM_WORLD + MPI_FINALIZE[0] + shell$ + + Keep in mind that the output from the trace library is going to + stderr, so it may output in a slightly different order than the + stdout from your application. + + This library is being offered as a "proof of concept" / convenience + from Open MPI. If there is interest, it is trivially easy to extend + it to printf for other MPI functions. Patches and/or suggestions + would be greatfully appreciated on the Open MPI developer's list. + +OSHMEM Functionality and Features +------------------------------ + +- All OpenSHMEM-1.0 functionality is supported. + + +MPI Collectives +----------- + +- The "hierarch" coll component (i.e., an implementation of MPI + collective operations) attempts to discover network layers of + latency in order to segregate individual "local" and "global" + operations as part of the overall collective operation. In this + way, network traffic can be reduced -- or possibly even minimized + (similar to MagPIe). The current "hierarch" component only + separates MPI processes into on- and off-node groups. + + Hierarch has had sufficient correctness testing, but has not + received much performance tuning. As such, hierarch is not + activated by default -- it must be enabled manually by setting its + priority level to 100: + + mpirun --mca coll_hierarch_priority 100 ... + + We would appreciate feedback from the user community about how well + hierarch works for your applications. + +- The "fca" coll component: the Mellanox Fabric Collective Accelerator + (FCA) is a solution for offloading collective operations from the + MPI process onto Mellanox QDR InfiniBand switch CPUs and HCAs. + +- The "ML" coll component is an implementation of MPI collective + operations that takes advantage of communication hierarchies in + modern systems. A ML collective operation is implemented by + combining multiple independently progressing collective primitives + implemented over different communication hierarchies, hence a ML + collective operation is also referred to as a hierarchical + collective operation. The number of collective primitives that are + included in a ML collective operation is a function of + subgroups(hierarchies). Typically, MPI processes in a single + communication hierarchy such as CPU socket, node, or subnet are + grouped together into a single subgroup (hierarchy). The number of + subgroups are configurable at runtime, and each different collective + operation could be configured to have a different of number of + subgroups. + + The component frameworks and components used by/required for a + "ML" collective operation. + + Frameworks: + * "sbgp" - Provides functionality for grouping processes into + subgroups + * "bcol" - Provides collective primitives optimized for a particular + communication hierarchy + + Components: + * sbgp components - Provides grouping functionality over a CPU + socket ("basesocket"), shared memory + ("basesmuma"), Mellanox's ConnectX HCA + ("ibnet"), and other interconnects supported by + PML ("p2p") + * BCOL components - Provides optimized collective primitives for + shared memory ("basesmuma"), Mellanox's ConnectX + HCA ("iboffload"), and other interconnects + supported by PML ("ptpcoll") + +- The "cuda" coll component provides CUDA-aware support for the + reduction type collectives with GPU buffers. This component is only + compiled into the library when the library has been configured with + CUDA-aware support. It intercepts calls to the reduction + collectives, copies the data to staging buffers if GPU buffers, then + calls underlying collectives to do the work. + +OSHMEM Collectives +----------- + +- The "fca" scoll component: the Mellanox Fabric Collective Accelerator + (FCA) is a solution for offloading collective operations from the + MPI process onto Mellanox QDR InfiniBand switch CPUs and HCAs. + +- The "basic" scoll component: Reference implementation of all OSHMEM + collective operations. + + +Network Support +--------------- + +- There are three main MPI network models available: "ob1", "cm", and + "yalla". "ob1" uses BTL ("Byte Transfer Layer") components for each + supported network. "cm" uses MTL ("Matching Tranport Layer") + components for each supported network. "yalla" uses the Mellanox + MXM transport. + + - "ob1" supports a variety of networks that can be used in + combination with each other: + + - OpenFabrics: InfiniBand, iWARP, and RoCE + - Loopback (send-to-self) + - Shared memory + - TCP + - Intel Phi SCIF + - SMCUDA + - Cisco usNIC + - uGNI (Cray Gemini, Aries) + - vader (XPMEM, Linux CMA, Linux KNEM, and general shared memory) + + - "cm" supports a smaller number of networks (and they cannot be + used together), but may provide better overall MPI performance: + + - QLogic InfiniPath / Intel True Scale PSM + - Intel Omni-Path PSM2 + - Mellanox MXM + - Portals4 + - OpenFabrics Interfaces ("libfabric" tag matching) + + Open MPI will, by default, choose to use "cm" when one of the + above transports can be used. Otherwise, "ob1" will be used and + the corresponding BTLs will be selected. Users can force the use + of ob1 or cm if desired by setting the "pml" MCA parameter at + run-time: + + shell$ mpirun --mca pml ob1 ... + or + shell$ mpirun --mca pml cm ... + +- Similarly, there are two OSHMEM network models available: "yoda", + and "ikrit". "yoda" also uses the BTL components for many supported + network. "ikrit" interfaces directly with Mellanox MXM. + + - "yoda" supports a variety of networks that can be used: + + - OpenFabrics: InfiniBand, iWARP, and RoCE + - Loopback (send-to-self) + - Shared memory + - TCP + + - "ikrit" only supports Mellanox MXM. + +- MXM is the Mellanox Messaging Accelerator library utilizing a full + range of IB transports to provide the following messaging services + to the upper level MPI/OSHMEM libraries: + + - Usage of all available IB transports + - Native RDMA support + - Progress thread + - Shared memory communication + - Hardware-assisted reliability + +- The usnic BTL is support for Cisco's usNIC device ("userspace NIC") + on Cisco UCS servers with the Virtualized Interface Card (VIC). + Although the usNIC is accessed via the OpenFabrics Libfabric API + stack, this BTL is specific to the Cisco usNIC device. + +- uGNI is a Cray library for communicating over the Gemini and Aries + interconnects. + +- The OpenFabrics Enterprise Distribution (OFED) software package v1.0 + will not work properly with Open MPI v1.2 (and later) due to how its + Mellanox InfiniBand plugin driver is created. The problem is fixed + OFED v1.1 (and later). + +- Better memory management support is available for OFED-based + transports using the "ummunotify" Linux kernel module. OFED memory + managers are necessary for better bandwidth when re-using the same + buffers for large messages (e.g., benchmarks and some applications). + + Unfortunately, the ummunotify module was not accepted by the Linux + kernel community (and is still not distributed by OFED). But it + still remains the best memory management solution for MPI + applications that used the OFED network transports. If Open MPI is + able to find the header file, it will build + support for ummunotify and include it by default. If MPI processes + then find the ummunotify kernel module loaded and active, then their + memory managers (which have been shown to be problematic in some + cases) will be disabled and ummunotify will be used. Otherwise, the + same memory managers from prior versions of Open MPI will be used. + The ummunotify Linux kernel module can be downloaded from: + + http://lwn.net/Articles/343351/ + +- The use of fork() with OpenFabrics-based networks (i.e., the openib + BTL) is only partially supported, and only on Linux kernels >= + v2.6.15 with libibverbs v1.1 or later (first released as part of + OFED v1.2), per restrictions imposed by the OFED network stack. + +- Linux "knem" support is used when the "vader" or "sm" (shared + memory) BTLs are compiled with knem support (see the --with-knem + configure option) and the knem Linux module is loaded in the running + kernel. If the knem Linux kernel module is not loaded, the knem + support is (by default) silently deactivated during Open MPI jobs. + + See http://runtime.bordeaux.inria.fr/knem/ for details on Knem. + +- Linux Cross-Memory Attach (CMA) or XPMEM is used by the vader + shared-memory BTL when the CMA/XPMEM libraries are installedm, + respectively. Linux CMA and XPMEM are similar (but different) + mechanisms for Open MPI to utilize single-copy semantics for shared + memory. + +Open MPI Extensions +------------------- + +- An MPI "extensions" framework has been added (but is not enabled by + default). See the "Open MPI API Extensions" section below for more + information on compiling and using MPI extensions. + +- The following extensions are included in this version of Open MPI: + + - affinity: Provides the OMPI_Affinity_str() routine on retrieving + a string that contains what resources a process is bound to. See + its man page for more details. + - cr: Provides routines to access to checkpoint restart routines. + See ompi/mpiext/cr/mpiext_cr_c.h for a listing of available + functions. + - cuda: When the library is compiled with CUDA-aware support, it provides + two things. First, a macro MPIX_CUDA_AWARE_SUPPORT. Secondly, the + function MPIX_Query_cuda_support that can be used to query for support. + - example: A non-functional extension; its only purpose is to + provide an example for how to create other extensions. + +=========================================================================== + +Building Open MPI +----------------- + +Open MPI uses a traditional configure script paired with "make" to +build. Typical installs can be of the pattern: + +--------------------------------------------------------------------------- +shell$ ./configure [...options...] +shell$ make all install +--------------------------------------------------------------------------- + +There are many available configure options (see "./configure --help" +for a full list); a summary of the more commonly used ones is included +below. + +Note that for many of Open MPI's --with- options, Open MPI will, +by default, search for header files and/or libraries for . If +the relevant files are found, Open MPI will built support for ; +if they are not found, Open MPI will skip building support for . +However, if you specify --with- on the configure command line and +Open MPI is unable to find relevant support for , configure will +assume that it was unable to provide a feature that was specifically +requested and will abort so that a human can resolve out the issue. + +INSTALLATION OPTIONS + +--prefix= + Install Open MPI into the base directory named . Hence, + Open MPI will place its executables in /bin, its header + files in /include, its libraries in /lib, etc. + +--disable-shared + By default, libmpi and libshmem are built as a shared library, and + all components are built as dynamic shared objects (DSOs). This + switch disables this default; it is really only useful when used with + --enable-static. Specifically, this option does *not* imply + --enable-static; enabling static libraries and disabling shared + libraries are two independent options. + +--enable-static + Build libmpi and libshmem as static libraries, and statically link in all + components. Note that this option does *not* imply + --disable-shared; enabling static libraries and disabling shared + libraries are two independent options. + + Be sure to read the description of --without-memory-manager, below; + it may have some effect on --enable-static. + +--disable-wrapper-rpath + By default, the wrapper compilers (e.g., mpicc) will enable "rpath" + support in generated executables on systems that support it. That + is, they will include a file reference to the location of Open MPI's + libraries in the application executable itself. This means that + the user does not have to set LD_LIBRARY_PATH to find Open MPI's + libraries (e.g., if they are installed in a location that the + run-time linker does not search by default). + + On systems that utilize the GNU ld linker, recent enough versions + will actually utilize "runpath" functionality, not "rpath". There + is an important difference between the two: + + "rpath": the location of the Open MPI libraries is hard-coded into + the MPI/OSHMEM application and cannot be overridden at run-time. + "runpath": the location of the Open MPI libraries is hard-coded into + the MPI/OSHMEM application, but can be overridden at run-time by + setting the LD_LIBRARY_PATH environment variable. + + For example, consider that you install Open MPI vA.B.0 and + compile/link your MPI/OSHMEM application against it. Later, you install + Open MPI vA.B.1 to a different installation prefix (e.g., + /opt/openmpi/A.B.1 vs. /opt/openmpi/A.B.0), and you leave the old + installation intact. + + In the rpath case, your MPI application will always use the + libraries from your A.B.0 installation. In the runpath case, you + can set the LD_LIBRARY_PATH environment variable to point to the + A.B.1 installation, and then your MPI application will use those + libraries. + + Note that in both cases, however, if you remove the original A.B.0 + installation and set LD_LIBRARY_PATH to point to the A.B.1 + installation, your application will use the A.B.1 libraries. + + This rpath/runpath behavior can be disabled via + --disable-wrapper-rpath. + +--enable-dlopen + Build all of Open MPI's components as standalone Dynamic Shared + Objects (DSO's) that are loaded at run-time (this is the default). + The opposite of this option, --disable-dlopen, causes two things: + + 1. All of Open MPI's components will be built as part of Open MPI's + normal libraries (e.g., libmpi). + 2. Open MPI will not attempt to open any DSO's at run-time. + + Note that this option does *not* imply that OMPI's libraries will be + built as static objects (e.g., libmpi.a). It only specifies the + location of OMPI's components: standalone DSOs or folded into the + Open MPI libraries. You can control whether Open MPI's libraries + are build as static or dynamic via --enable|disable-static and + --enable|disable-shared. + +--with-platform=FILE + Load configure options for the build from FILE. Options on the + command line that are not in FILE are also used. Options on the + command line and in FILE are replaced by what is in FILE. + +--with-libmpi-name=STRING + Replace libmpi.* and libmpi_FOO.* (where FOO is one of the fortran + supporting libraries installed in lib) with libSTRING.* and + libSTRING_FOO.*. This is provided as a convenience mechanism for + third-party packagers of Open MPI that might want to rename these + libraries for their own purposes. This option is *not* intended for + typical users of Open MPI. + +--enable-mca-no-build=LIST + Comma-separated list of - pairs that will not be + built. For example, "--enable-mca-no-build=btl-portals,oob-ud" will + disable building the portals BTL and the ud OOB component. + +NETWORKING SUPPORT / OPTIONS + +--with-fca= + Specify the directory where the Mellanox FCA library and + header files are located. + + FCA is the support library for Mellanox QDR switches and HCAs. + +--with-hcoll= + Specify the directory where the Mellanox hcoll library and header + files are located. This option is generally only necessary if the + hcoll headers and libraries are not in default compiler/linker + search paths. + + hcoll is the support library for MPI collective operation offload on + Mellanox ConnectX-3 HCAs (and later). + +--with-knem= + Specify the directory where the knem libraries and header files are + located. This option is generally only necessary if the knem headers + and libraries are not in default compiler/linker search paths. + + knem is a Linux kernel module that allows direct process-to-process + memory copies (optionally using hardware offload), potentially + increasing bandwidth for large messages sent between messages on the + same server. See http://runtime.bordeaux.inria.fr/knem/ for + details. + +--with-libfabric= + Specify the directory where the OpenFabrics Interfaces libfabric + library and header files are located. This option is generally only + necessary if the libfabric headers and libraries are not in default + compiler/linker search paths. + + Libfabric is the support library for OpenFabrics Interfaces-based + network adapters, such as Cisco usNIC, Intel True Scale PSM, etc. + +--with-libfabric-libdir= + Look in directory for the libfabric libraries. By default, Open MPI + will look in /lib and /lib64, which covers most cases. This option is only + needed for special configurations. + +--with-mxm= + Specify the directory where the Mellanox MXM library and header + files are located. This option is generally only necessary if the + MXM headers and libraries are not in default compiler/linker search + paths. + + MXM is the support library for Mellanox Network adapters. + +--with-mxm-libdir= + Look in directory for the MXM libraries. By default, Open MPI will + look in /lib and /lib64, which covers + most cases. This option is only needed for special configurations. + +--with-portals4= + Specify the directory where the Portals4 libraries and header files + are located. This option is generally only necessary if the Portals4 + headers and libraries are not in default compiler/linker search + paths. + + Portals is a low-level network API for high-performance networking + on high-performance computing systems developed by Sandia National + Laboratories, Intel Corporation, and the University of New Mexico. + The Portals 4 Reference Implementation is a complete implementation + of Portals 4, with transport over InfiniBand verbs and UDP. + +--with-portals4-libdir= + Location of libraries to link with for Portals4 support. + +--with-portals4-max-md-size=SIZE +--with-portals4-max-va-size=SIZE + Set configuration values for Portals 4 + +--with-psm= + Specify the directory where the QLogic InfiniPath / Intel True Scale + PSM library and header files are located. This option is generally + only necessary if the PSM headers and libraries are not in default + compiler/linker search paths. + + PSM is the support library for QLogic InfiniPath and Intel TrueScale + network adapters. + +--with-psm-libdir= + Look in directory for the PSM libraries. By default, Open MPI will + look in /lib and /lib64, which covers + most cases. This option is only needed for special configurations. + +--with-psm2= + Specify the directory where the Intel Omni-Path PSM2 library and + header files are located. This option is generally only necessary + if the PSM2 headers and libraries are not in default compiler/linker + search paths. + + PSM2 is the support library for Intel Omni-Path network adapters. + +--with-psm2-libdir= + Look in directory for the PSM2 libraries. By default, Open MPI will + look in /lib and /lib64, which + covers most cases. This option is only needed for special + configurations. + +--with-scif= + Look in directory for Intel SCIF support libraries + +--with-verbs= + Specify the directory where the verbs (also know as OpenFabrics, and + previously known as OpenIB) libraries and header files are located. + This option is generally only necessary if the verbs headers and + libraries are not in default compiler/linker search paths. + + "OpenFabrics" refers to operating system bypass networks, such as + InfiniBand, usNIC, iWARP, and RoCE (aka "IBoIP"). + +--with-verbs-libdir= + Look in directory for the verbs libraries. By default, Open MPI + will look in /lib and /lib64, + which covers most cases. This option is only needed for special + configurations. + +--with-verbs-usnic + This option will activate support in Open MPI for disabling a + dire-sounding warning message from libibverbs that Cisco usNIC + devices are not supported (because Cisco usNIC devices are supported + through libfabric, not libibverbs). This libibverbs warning can + also be suppressed by installing the "no op" libusnic_verbs plugin + for libibverbs (see https://github.com/cisco/libusnic_verbs, or + download binaries from cisco.com). This option is disabled by + default because it causes libopen-pal.so to depend on libibverbs.so, + which is undesirable to many downstream packagers. + +--with-usnic + Abort configure if Cisco usNIC support cannot be built. + +RUN-TIME SYSTEM SUPPORT + +--enable-mpirun-prefix-by-default + This option forces the "mpirun" command to always behave as if + "--prefix $prefix" was present on the command line (where $prefix is + the value given to the --prefix option to configure). This prevents + most rsh/ssh-based users from needing to modify their shell startup + files to set the PATH and/or LD_LIBRARY_PATH for Open MPI on remote + nodes. Note, however, that such users may still desire to set PATH + -- perhaps even in their shell startup files -- so that executables + such as mpicc and mpirun can be found without needing to type long + path names. --enable-orterun-prefix-by-default is a synonym for + this option. + +--enable-sensors + Enable internal sensors (default: disabled). + +--enable-orte-static-ports + Enable orte static ports for tcp oob (default: enabled). + +--with-alps + Force the building of for the Cray Alps run-time environment. If + Alps support cannot be found, configure will abort. + +--with-loadleveler + Force the building of LoadLeveler scheduler support. If LoadLeveler + support cannot be found, configure will abort. + +--with-lsf= + Specify the directory where the LSF libraries and header files are + located. This option is generally only necessary if the LSF headers + and libraries are not in default compiler/linker search paths. + + LSF is a resource manager system, frequently used as a batch + scheduler in HPC systems. + + NOTE: If you are using LSF version 7.0.5, you will need to add + "LIBS=-ldl" to the configure command line. For example: + + ./configure LIBS=-ldl --with-lsf ... + + This workaround should *only* be needed for LSF 7.0.5. + +--with-lsf-libdir= + Look in directory for the LSF libraries. By default, Open MPI will + look in /lib and /lib64, which covers + most cases. This option is only needed for special configurations. + +--with-pmi + Build PMI support (by default on non-Cray XE/XC systems, it is not + built). On Cray XE/XC systems, the location of pmi is detected + automatically as part of the configure process. For non-Cray + systems, if the pmi2.h header is found in addition to pmi.h, then + support for PMI2 will be built. + +--with-slurm + Force the building of SLURM scheduler support. + +--with-sge + Specify to build support for the Oracle Grid Engine (OGE) resource + manager and/or the Open Grid Engine. OGE support is disabled by + default; this option must be specified to build OMPI's OGE support. + + The Oracle Grid Engine (OGE) and open Grid Engine packages are + resource manager systems, frequently used as a batch scheduler in + HPC systems. + +--with-tm= + Specify the directory where the TM libraries and header files are + located. This option is generally only necessary if the TM headers + and libraries are not in default compiler/linker search paths. + + TM is the support library for the Torque and PBS Pro resource + manager systems, both of which are frequently used as a batch + scheduler in HPC systems. + +MISCELLANEOUS SUPPORT LIBRARIES + +--with-blcr= + Specify the directory where the Berkeley Labs Checkpoint / Restart + (BLCR) libraries and header files are located. This option is + generally only necessary if the BLCR headers and libraries are not + in default compiler/linker search paths. + + This option is only meaningful if the --with-ft option is also used + to active Open MPI's fault tolerance behavior. + +--with-blcr-libdir= + Look in directory for the BLCR libraries. By default, Open MPI will + look in /lib and /lib64, which + covers most cases. This option is only needed for special + configurations. + +--with-dmtcp= + Specify the directory where the Distributed MultiThreaded + Checkpointing (DMTCP) libraries and header files are located. This + option is generally only necessary if the DMTCP headers and + libraries are not in default compiler/linker search paths. + + This option is only meaningful if the --with-ft option is also used + to active Open MPI's fault tolerance behavior. + +--with-dmtcp-libdir= + Look in directory for the DMTCP libraries. By default, Open MPI + will look in /lib and /lib64, + which covers most cases. This option is only needed for special + configurations. + +--with-libevent(=value) + This option specifies where to find the libevent support headers and + library. The following VALUEs are permitted: + + internal: Use Open MPI's internal copy of libevent. + external: Use an external libevent installation (rely on default + compiler and linker paths to find it) + : Same as "internal". + : Specify the location of a specific libevent + installation to use + + By default (or if --with-libevent is specified with no VALUE), Open + MPI will build and use the copy of libevent that it has in its + source tree. However, if the VALUE is "external", Open MPI will + look for the relevant libevent header file and library in default + compiler / linker locations. Or, VALUE can be a directory tree + where the libevent header file and library can be found. This + option allows operating systems to include Open MPI and use their + default libevent installation instead of Open MPI's bundled libevent. + + libevent is a support library that provides event-based processing, + timers, and signal handlers. Open MPI requires libevent to build; + passing --without-libevent will cause configure to abort. + +--with-libevent-libdir= + Look in directory for the libevent libraries. This option is only + usable when building Open MPI against an external libevent + installation. Just like other --with-FOO-libdir configure options, + this option is only needed for special configurations. + +--with-hwloc(=value) + Build hwloc support (default: enabled). This option specifies where + to find the hwloc support headers and library. The following values + are permitted: + + internal: Use Open MPI's internal copy of hwloc. + external: Use an external hwloc installation (rely on default + compiler and linker paths to find it) + : Same as "internal". + : Specify the location of a specific hwloc + installation to use + + By default (or if --with-hwloc is specified with no VALUE), Open MPI + will build and use the copy of hwloc that it has in its source tree. + However, if the VALUE is "external", Open MPI will look for the + relevant hwloc header files and library in default compiler / linker + locations. Or, VALUE can be a directory tree where the hwloc header + file and library can be found. This option allows operating systems + to include Open MPI and use their default hwloc installation instead + of Open MPI's bundled hwloc. + + hwloc is a support library that provides processor and memory + affinity information for NUMA platforms. + +--with-hwloc-libdir= + Look in directory for the hwloc libraries. This option is only + usable when building Open MPI against an external hwloc + installation. Just like other --with-FOO-libdir configure options, + this option is only needed for special configurations. + +--disable-hwloc-pci + Disable building hwloc's PCI device-sensing capabilities. On some + platforms (e.g., SusE 10 SP1, x86-64), the libpci support library is + broken. Open MPI's configure script should usually detect when + libpci is not usable due to such brokenness and turn off PCI + support, but there may be cases when configure mistakenly enables + PCI support in the presence of a broken libpci. These cases may + result in "make" failing with warnings about relocation symbols in + libpci. The --disable-hwloc-pci switch can be used to force Open + MPI to not build hwloc's PCI device-sensing capabilities in these + cases. + + Similarly, if Open MPI incorrectly decides that libpci is broken, + you can force Open MPI to build hwloc's PCI device-sensing + capabilities by using --enable-hwloc-pci. + + hwloc can discover PCI devices and locality, which can be useful for + Open MPI in assigning message passing resources to MPI processes. + +--with-libltdl= + Specify the directory where the GNU Libtool libltdl libraries and + header files are located. This option is generally only necessary + if the libltdl headers and libraries are not in default + compiler/linker search paths. + + Note that this option is ignored if --disable-dlopen is specified. + +--disable-libompitrace + Disable building the simple "libompitrace" library (see note above + about libompitrace) + +--with-valgrind(=) + Directory where the valgrind software is installed. If Open MPI + finds Valgrind's header files, it will include additional support + for Valgrind's memory-checking debugger. + + Specifically, it will eliminate a lot of false positives from + running Valgrind on MPI applications. There is a minor performance + penalty for enabling this option. + +MPI FUNCTIONALITY + +--with-mpi-param-check(=value) + Whether or not to check MPI function parameters for errors at + runtime. The following values are permitted: + + always: MPI function parameters are always checked for errors + never: MPI function parameters are never checked for errors + runtime: Whether MPI function parameters are checked depends on + the value of the MCA parameter mpi_param_check (default: + yes). + yes: Synonym for "always" (same as --with-mpi-param-check). + no: Synonym for "none" (same as --without-mpi-param-check). + + If --with-mpi-param is not specified, "runtime" is the default. + +--enable-mpi-thread-multiple + Allows the MPI thread level MPI_THREAD_MULTIPLE. + This is currently disabled by default. Enabling + this feature will automatically --enable-opal-multi-threads. + +--enable-opal-multi-threads + Enables thread lock support in the OPAL and ORTE layers. Does + not enable MPI_THREAD_MULTIPLE - see above option for that feature. + This is currently disabled by default. + +--enable-mpi-cxx + Enable building the C++ MPI bindings (default: disabled). + + The MPI C++ bindings were deprecated in MPI-2.2, and removed from + the MPI standard in MPI-3.0. + +--enable-mpi-java + Enable building of an EXPERIMENTAL Java MPI interface (disabled by + default). You may also need to specify --with-jdk-dir, + --with-jdk-bindir, and/or --with-jdk-headers. See README.JAVA.txt + for details. + + Note that this Java interface is INCOMPLETE (meaning: it does not + support all MPI functionality) and LIKELY TO CHANGE. The Open MPI + developers would very much like to hear your feedback about this + interface. See README.JAVA.txt for more details. + +--enable-mpi-fortran(=value) + By default, Open MPI will attempt to build all 3 Fortran bindings: + mpif.h, the "mpi" module, and the "mpi_f08" module. The following + values are permitted: + + all: Synonym for "yes". + yes: Attempt to build all 3 Fortran bindings; skip + any binding that cannot be built (same as + --enable-mpi-fortran). + mpifh: Build mpif.h support. + usempi: Build mpif.h and "mpi" module support. + usempif08: Build mpif.h, "mpi" module, and "mpi_f08" + module support. + none: Synonym for "no". + no: Do not build any MPI Fortran support (same as + --disable-mpi-fortran). This is mutually exclusive + with building the OSHMEM Fortran interface. + +--enable-mpi-ext(=) + Enable Open MPI's non-portable API extensions. If no is + specified, all of the extensions are enabled. + + See "Open MPI API Extensions", below, for more details. + +--disable-mpi-io + Disable built-in support for MPI-2 I/O, likely because an externally-provided + MPI I/O package will be used. Default is to use the internal framework + system that uses the ompio component and a specially modified version of ROMIO + that fits inside the romio component + +--disable-io-romio + Disable the ROMIO MPI-IO component + +--with-io-romio-flags=flags + Pass flags to the ROMIO distribution configuration script. This + option is usually only necessary to pass + parallel-filesystem-specific preprocessor/compiler/linker flags back + to the ROMIO system. + +--disable-io-ompio + Disable the ompio MPI-IO component + +--enable-sparse-groups + Enable the usage of sparse groups. This would save memory + significantly especially if you are creating large + communicators. (Disabled by default) + +OSHMEM FUNCTIONALITY + +--disable-oshmem + Disable building the OpenSHMEM implementation (by default, it is + enabled). + +--disable-oshmem-fortran + Disable building only the Fortran OSHMEM bindings. Please see + the "Compiler Notes" section herein which contains further + details on known issues with various Fortran compilers. + +MISCELLANEOUS FUNCTIONALITY + +--without-memory-manager + Disable building Open MPI's memory manager. Open MPI's memory + manager is usually built on Linux based platforms, and is generally + only used for optimizations with some OpenFabrics-based networks (it + is not *necessary* for OpenFabrics networks, but some performance + loss may be observed without it). + + However, it may be necessary to disable the memory manager in order + to build Open MPI statically. + +--with-ft=TYPE + Specify the type of fault tolerance to enable. Options: LAM + (LAM/MPI-like), cr (Checkpoint/Restart). Fault tolerance support is + disabled unless this option is specified. + +--enable-peruse + Enable the PERUSE MPI data analysis interface. + +--enable-heterogeneous + Enable support for running on heterogeneous clusters (e.g., machines + with different endian representations). Heterogeneous support is + disabled by default because it imposes a minor performance penalty. + + *** THIS FUNCTIONALITY IS CURRENTLY BROKEN - DO NOT USE *** + +--with-wrapper-cflags= +--with-wrapper-cxxflags= +--with-wrapper-fflags= +--with-wrapper-fcflags= +--with-wrapper-ldflags= +--with-wrapper-libs= + Add the specified flags to the default flags that used are in Open + MPI's "wrapper" compilers (e.g., mpicc -- see below for more + information about Open MPI's wrapper compilers). By default, Open + MPI's wrapper compilers use the same compilers used to build Open + MPI and specify a minimum set of additional flags that are necessary + to compile/link MPI applications. These configure options give + system administrators the ability to embed additional flags in + OMPI's wrapper compilers (which is a local policy decision). The + meanings of the different flags are: + + : Flags passed by the mpicc wrapper to the C compiler + : Flags passed by the mpic++ wrapper to the C++ compiler + : Flags passed by the mpifort wrapper to the Fortran compiler + : Flags passed by all the wrappers to the linker + : Flags passed by all the wrappers to the linker + + There are other ways to configure Open MPI's wrapper compiler + behavior; see the Open MPI FAQ for more information. + +There are many other options available -- see "./configure --help". + +Changing the compilers that Open MPI uses to build itself uses the +standard Autoconf mechanism of setting special environment variables +either before invoking configure or on the configure command line. +The following environment variables are recognized by configure: + +CC - C compiler to use +CFLAGS - Compile flags to pass to the C compiler +CPPFLAGS - Preprocessor flags to pass to the C compiler + +CXX - C++ compiler to use +CXXFLAGS - Compile flags to pass to the C++ compiler +CXXCPPFLAGS - Preprocessor flags to pass to the C++ compiler + +FC - Fortran compiler to use +FCFLAGS - Compile flags to pass to the Fortran compiler + +LDFLAGS - Linker flags to pass to all compilers +LIBS - Libraries to pass to all compilers (it is rarely + necessary for users to need to specify additional LIBS) + +PKG_CONFIG - Path to the pkg-config utility + +For example: + + shell$ ./configure CC=mycc CXX=myc++ FC=myfortran ... + +*** NOTE: We generally suggest using the above command line form for + setting different compilers (vs. setting environment variables and + then invoking "./configure"). The above form will save all + variables and values in the config.log file, which makes + post-mortem analysis easier if problems occur. + +Note that if you intend to compile Open MPI with a "make" other than +the default one in your PATH, then you must either set the $MAKE +environment variable before invoking Open MPI's configure script, or +pass "MAKE=your_make_prog" to configure. For example: + + shell$ ./configure MAKE=/path/to/my/make ... + +This could be the case, for instance, if you have a shell alias for +"make", or you always type "gmake" out of habit. Failure to tell +configure which non-default "make" you will use to compile Open MPI +can result in undefined behavior (meaning: don't do that). + +Note that you may also want to ensure that the value of +LD_LIBRARY_PATH is set appropriately (or not at all) for your build +(or whatever environment variable is relevant for your operating +system). For example, some users have been tripped up by setting to +use a non-default Fortran compiler via FC, but then failing to set +LD_LIBRARY_PATH to include the directory containing that non-default +Fortran compiler's support libraries. This causes Open MPI's +configure script to fail when it tries to compile / link / run simple +Fortran programs. + +It is required that the compilers specified be compile and link +compatible, meaning that object files created by one compiler must be +able to be linked with object files from the other compilers and +produce correctly functioning executables. + +Open MPI supports all the "make" targets that are provided by GNU +Automake, such as: + +all - build the entire Open MPI package +install - install Open MPI +uninstall - remove all traces of Open MPI from the $prefix +clean - clean out the build tree + +Once Open MPI has been built and installed, it is safe to run "make +clean" and/or remove the entire build tree. + +VPATH and parallel builds are fully supported. + +Generally speaking, the only thing that users need to do to use Open +MPI is ensure that /bin is in their PATH and /lib is +in their LD_LIBRARY_PATH. Users may need to ensure to set the PATH +and LD_LIBRARY_PATH in their shell setup files (e.g., .bashrc, .cshrc) +so that non-interactive rsh/ssh-based logins will be able to find the +Open MPI executables. + +=========================================================================== + +Open MPI Version Numbers and Binary Compatibility +------------------------------------------------- + +Open MPI has two sets of version numbers that are likely of interest +to end users / system administrator: + + * Software version number + * Shared library version numbers + +Both are predicated on Open MPI's definition of "backwards +compatibility." + +NOTE: The version numbering conventions were changed with the release + of v1.10.0. Most notably, Open MPI no longer uses an "odd/even" + release schedule to indicate feature development vs. stable + releases. See the README in releases prior to v1.10.0 for more + information (e.g., + https://github.com/open-mpi/ompi-release/blob/v1.8/README#L1392-L1475). + +Backwards Compatibility +----------------------- + +Open MPI version vY is backwards compatible with Open MPI version vX +(where Y>X) if users can: + + * Users can compile a correct MPI / OSHMEM program with vX + * Run it with the same CLI options and MCA parameters using vX or vY + * The job executes correctly + +Note that this definition encompasses several things: + + * Application Binary Interface (ABI) + * MPI / OSHMEM run time system + * mpirun / oshrun command line options + * MCA parameter names / values / meanings + +However, this definition only applies when the same version of Open +MPI is used with all instances of the runtime and MPI / OSHMEM +processes in a single MPI job. If the versions are not exactly the +same everywhere, Open MPI is not guaranteed to work properly in any +scenario. + +Software Version Number +----------------------- + +Official Open MPI releases use the common "A.B.C" version identifier +format. Each of the three numbers has a specific meaning: + + * Major: The major number is the first integer in the version string + Changes in the major number typically indicate a significant + change in the code base and/or end-user functionality, and also + indicate a break from backwards compatibility. Specifically: Open + MPI releases with different major version numbers are not + backwards compatibale with each other. + + CAVEAT: This rule does not extend to versions prior to v1.10.0. + Specifically: v1.10.x is not guaranteed to be backwards + compatible with other v1.x releases. + + * Minor: The minor number is the second integer in the version + string. Changes in the minor number indicate a user-observable + change in the code base and/or end-user functionality. Backwards + compatibility will still be preserved with prior releases that + have the same major version number (e.g., v2.5.3 is backwards + compatible with v2.3.1). + + * Release: The release number is the third integer in the version + string. Changes in the release number typically indicate a bug + fix in the code base and/or end-user functionality. For example, + if there is a release that only contains bug fixes and no other + user-observable changes or new features, only the third integer + will be increased (e.g., from v4.3.0 to v4.3.1). + +The "A.B.C" version number may optionally be followed by a Quantifier: + + * Quantifier: Open MPI version numbers sometimes have an arbitrary + string affixed to the end of the version number. Common strings + include: + + o aX: Indicates an alpha release. X is an integer indicating the + number of the alpha release (e.g., v1.10.3a5 indicates the 5th + alpha release of version 1.10.3). + o bX: Indicates a beta release. X is an integer indicating the + number of the beta release (e.g., v1.10.3b3 indicates the 3rd + beta release of version 1.10.3). + o rcX: Indicates a release candidate. X is an integer indicating + the number of the release candidate (e.g., v1.10.3rc4 indicates + the 4th release candidate of version 1.10.3). + +Nightly development snapshot tarballs use a different version number +scheme; they contain three distinct values: + + * The most recent Git tag name on the branch from which the tarball + was created. + * An integer indicating how many Git commits have occurred since + that Git tag. + * The Git hash of the tip of the branch. + +For example, a snapshot tarball filename of +"openmpi-v1.8.2-57-gb9f1fd9.tar.bz2" indicates that this tarball was +created from the v1.8 branch, 57 Git commits after the "v1.8.2" tag, +specifically at Git hash gb9f1fd9. + +Open MPI's Git master branch contains a single "dev" tag. For +example, "openmpi-dev-8-gf21c349.tar.bz2" represents a snapshot +tarball created from the master branch, 8 Git commits after the "dev" +tag, specifically at Git hash gf21c349. + +The exact value of the "number of Git commits past a tag" integer is +fairly meaningless; its sole purpose is to provide an easy, +human-recognizable ordering for snapshot tarballs. + +Shared Library Version Number +----------------------------- + +The GNU Libtool official documentation details how the versioning +scheme works. The quick version is that the shared library versions +are a triple of integers: (current,revision,age), or "c:r:a". This +triple is not related to the Open MPI software version number. There +are six simple rules for updating the values (taken almost verbatim +from the Libtool docs): + + 1. Start with version information of "0:0:0" for each shared library. + + 2. Update the version information only immediately before a public + release of your software. More frequent updates are unnecessary, + and only guarantee that the current interface number gets larger + faster. + + 3. If the library source code has changed at all since the last + update, then increment revision ("c:r:a" becomes "c:r+1:a"). + + 4. If any interfaces have been added, removed, or changed since the + last update, increment current, and set revision to 0. + + 5. If any interfaces have been added since the last public release, + then increment age. + + 6. If any interfaces have been removed since the last public release, + then set age to 0. + +Here's how we apply those rules specifically to Open MPI: + + 1. The above rules do not apply to MCA components (a.k.a. "plugins"); + MCA component .so versions stay unspecified. + + 2. The above rules apply exactly as written to the following + libraries starting with Open MPI version v1.5 (prior to v1.5, + libopen-pal and libopen-rte were still at 0:0:0 for reasons + discussed in bug ticket #2092 + https://svn.open-mpi.org/trac/ompi/ticket/2092): + + * libopen-rte + * libopen-pal + * libmca_common_* + + 3. The following libraries use a slightly modified version of the + above rules: rules 4, 5, and 6 only apply to the official MPI and + OpenSHMEM interfaces (functions, global variables). The rationale + for this decision is that the vast majority of our users only care + about the official/public MPI/OSHMEM interfaces; we therefore want + the .so version number to reflect only changes to the official + MPI/OSHMEM APIs. Put simply: non-MPI/OSHMEM API / internal + changes to the MPI-application-facing libraries are irrelevant to + pure MPI/OSHMEM applications. + + * libmpi + * libmpi_mpifh + * libmpi_usempi_tkr + * libmpi_usempi_ignore_tkr + * libmpi_usempif08 + * libmpi_cxx + * libmpi_java + * liboshmem + +=========================================================================== + +Checking Your Open MPI Installation +----------------------------------- + +The "ompi_info" command can be used to check the status of your Open +MPI installation (located in /bin/ompi_info). Running it with +no arguments provides a summary of information about your Open MPI +installation. + +Note that the ompi_info command is extremely helpful in determining +which components are installed as well as listing all the run-time +settable parameters that are available in each component (as well as +their default values). + +The following options may be helpful: + +--all Show a *lot* of information about your Open MPI + installation. +--parsable Display all the information in an easily + grep/cut/awk/sed-able format. +--param + A of "all" and a of "all" will + show all parameters to all components. Otherwise, the + parameters of all the components in a specific framework, + or just the parameters of a specific component can be + displayed by using an appropriate and/or + name. +--level + By default, ompi_info only shows "Level 1" MCA parameters + -- parameters that can affect whether MPI processes can + run successfully or not (e.g., determining which network + interfaces to use). The --level option will display all + MCA parameters from level 1 to (the max + value is 9). Use "ompi_info --param + --level 9" to see *all* MCA parameters for a + given component. See "The Modular Component Architecture + (MCA)" section, below, for a fuller explanation. + +Changing the values of these parameters is explained in the "The +Modular Component Architecture (MCA)" section, below. + +When verifying a new Open MPI installation, we recommend running six +tests: + +1. Use "mpirun" to launch a non-MPI program (e.g., hostname or uptime) + across multiple nodes. + +2. Use "mpirun" to launch a trivial MPI program that does no MPI + communication (e.g., the hello_c program in the examples/ directory + in the Open MPI distribution). + +3. Use "mpirun" to launch a trivial MPI program that sends and + receives a few MPI messages (e.g., the ring_c program in the + examples/ directory in the Open MPI distribution). + +4. Use "oshrun" to launch a non-OSHMEM program across multiple nodes. + +5. Use "oshrun" to launch a trivial MPI program that does no OSHMEM + communication (e.g., hello_shmem.c program in the examples/ directory + in the Open MPI distribution.) + +6. Use "oshrun" to launch a trivial OSHMEM program that puts and gets + a few messages. (e.g., the ring_shmem.c in the examples/ directory + in the Open MPI distribution.) + +If you can run all six of these tests successfully, that is a good +indication that Open MPI built and installed properly. + +=========================================================================== + +Open MPI API Extensions +----------------------- + +Open MPI contains a framework for extending the MPI API that is +available to applications. Each extension is usually a standalone set +of functionality that is distinct from other extensions (similar to +how Open MPI's plugins are usually unrelated to each other). These +extensions provide new functions and/or constants that are available +to MPI applications. + +WARNING: These extensions are neither standard nor portable to other +MPI implementations! + +Compiling the extensions +------------------------ + +Open MPI extensions are all enabled by default; they can be disabled +via the --disable-mpi-ext command line switch. + +Since extensions are meant to be used by advanced users only, this +file does not document which extensions are available or what they +do. Look in the ompi/mpiext/ directory to see the extensions; each +subdirectory of that directory contains an extension. Each has a +README file that describes what it does. + +Using the extensions +-------------------- + +To reinforce the fact that these extensions are non-standard, you must +include a separate header file after to obtain the function +prototypes, constant declarations, etc. For example: + +----- +#include +#if defined(OPEN_MPI) && OPEN_MPI +#include +#endif + +int main() { + MPI_Init(NULL, NULL); + +#if defined(OPEN_MPI) && OPEN_MPI + { + char ompi_bound[OMPI_AFFINITY_STRING_MAX]; + char current_binding[OMPI_AFFINITY_STRING_MAX]; + char exists[OMPI_AFFINITY_STRING_MAX]; + OMPI_Affinity_str(OMPI_AFFINITY_LAYOUT_FMT, ompi_bound, + current_bindings, exists); + } +#endif + MPI_Finalize(); + return 0; +} +----- + +Notice that the Open MPI-specific code is surrounded by the #if +statement to ensure that it is only ever compiled by Open MPI. + +The Open MPI wrapper compilers (mpicc and friends) should +automatically insert all relevant compiler and linker flags necessary +to use the extensions. No special flags or steps should be necessary +compared to "normal" MPI applications. + +=========================================================================== + +Compiling Open MPI Applications +------------------------------- + +Open MPI provides "wrapper" compilers that should be used for +compiling MPI and OSHMEM applications: + +C: mpicc, oshcc +C++: mpiCC, oshCC (or mpic++ if your filesystem is case-insensitive) +Fortran: mpifort, oshfort + +For example: + + shell$ mpicc hello_world_mpi.c -o hello_world_mpi -g + shell$ + +For OSHMEM applications: + + shell$ oshcc hello_shmem.c -o hello_shmem -g + shell$ + +All the wrapper compilers do is add a variety of compiler and linker +flags to the command line and then invoke a back-end compiler. To be +specific: the wrapper compilers do not parse source code at all; they +are solely command-line manipulators, and have nothing to do with the +actual compilation or linking of programs. The end result is an MPI +executable that is properly linked to all the relevant libraries. + +Customizing the behavior of the wrapper compilers is possible (e.g., +changing the compiler [not recommended] or specifying additional +compiler/linker flags); see the Open MPI FAQ for more information. + +Alternatively, Open MPI also installs pkg-config(1) configuration +files under $libdir/pkgconfig. If pkg-config is configured to find +these files, then compiling / linking Open MPI programs can be +performed like this: + + shell$ gcc hello_world_mpi.c -o hello_world_mpi -g \ + `pkg-config ompi-c --cflags --libs` + shell$ + +Open MPI supplies multiple pkg-config(1) configuration files; one for +each different wrapper compiler (language): + +------------------------------------------------------------------------ +ompi Synonym for "ompi-c"; Open MPI applications using the C + MPI bindings +ompi-c Open MPI applications using the C MPI bindings +ompi-cxx Open MPI applications using the C or C++ MPI bindings +ompi-fort Open MPI applications using the Fortran MPI bindings +------------------------------------------------------------------------ + +The following pkg-config(1) configuration files *may* be installed, +depending on which command line options were specified to Open MPI's +configure script. They are not necessary for MPI applications, but +may be used by applications that use Open MPI's lower layer support +libraries. + +orte: Open MPI Run-Time Environment applications +opal: Open Portable Access Layer applications + +=========================================================================== + +Running Open MPI Applications +----------------------------- + +Open MPI supports both mpirun and mpiexec (they are exactly +equivalent) to launch MPI applications. For example: + + shell$ mpirun -np 2 hello_world_mpi + or + shell$ mpiexec -np 1 hello_world_mpi : -np 1 hello_world_mpi + +are equivalent. Some of mpiexec's switches (such as -host and -arch) +are not yet functional, although they will not error if you try to use +them. + +The rsh launcher (which defaults to using ssh) accepts a -hostfile +parameter (the option "-machinefile" is equivalent); you can specify a +-hostfile parameter indicating an standard mpirun-style hostfile (one +hostname per line): + + shell$ mpirun -hostfile my_hostfile -np 2 hello_world_mpi + +If you intend to run more than one process on a node, the hostfile can +use the "slots" attribute. If "slots" is not specified, a count of 1 +is assumed. For example, using the following hostfile: + +--------------------------------------------------------------------------- +node1.example.com +node2.example.com +node3.example.com slots=2 +node4.example.com slots=4 +--------------------------------------------------------------------------- + + shell$ mpirun -hostfile my_hostfile -np 8 hello_world_mpi + +will launch MPI_COMM_WORLD rank 0 on node1, rank 1 on node2, ranks 2 +and 3 on node3, and ranks 4 through 7 on node4. + +Other starters, such as the resource manager / batch scheduling +environments, do not require hostfiles (and will ignore the hostfile +if it is supplied). They will also launch as many processes as slots +have been allocated by the scheduler if no "-np" argument has been +provided. For example, running a SLURM job with 8 processors: + + shell$ salloc -n 8 mpirun a.out + +The above command will reserve 8 processors and run 1 copy of mpirun, +which will, in turn, launch 8 copies of a.out in a single +MPI_COMM_WORLD on the processors that were allocated by SLURM. + +Note that the values of component parameters can be changed on the +mpirun / mpiexec command line. This is explained in the section +below, "The Modular Component Architecture (MCA)". + +Open MPI supports oshrun to launch OSHMEM applications. For example: + + shell$ oshrun -np 2 hello_world_oshmem + +OSHMEM applications may also be launched directly by resource managers +such as SLURM. For example, when OMPI is configured --with-pmi and +--with-slurm one may launch OSHMEM applications via srun: + + shell$ srun -N 2 hello_world_oshmem + + +=========================================================================== + +The Modular Component Architecture (MCA) + +The MCA is the backbone of Open MPI -- most services and functionality +are implemented through MCA components. Here is a list of all the +component frameworks in Open MPI: + +--------------------------------------------------------------------------- + +MPI component frameworks: +------------------------- + +bcol - Base collective operations +bml - BTL management layer +coll - MPI collective algorithms +crcp - Checkpoint/restart coordination protocol +fbtl - file byte transfer layer: abstraction for individual + read/write operations for OMPIO +fcoll - collective read and write operations for MPI I/O +fs - file system functions for MPI I/O +io - MPI I/O +mtl - Matching transport layer, used for MPI point-to-point + messages on some types of networks +op - Back end computations for intrinsic MPI_Op operators +osc - MPI one-sided communications +pml - MPI point-to-point management layer +rte - Run-time environment operations +sbgp - Collective operation sub-group +sharedfp - shared file pointer operations for MPI I/O +topo - MPI topology routines +vprotocol - Protocols for the "v" PML + +OSHMEM component frameworks: +------------------------- + +atomic - OSHMEM atomic operations +memheap - OSHMEM memory allocators that support the + PGAS memory model +scoll - OSHMEM collective operations +spml - OSHMEM "pml-like" layer: supports one-sided, + point-to-point operations +sshmem - OSHMEM shared memory backing facility + + +Back-end run-time environment (RTE) component frameworks: +--------------------------------------------------------- + +dfs - Distributed file system +errmgr - RTE error manager +ess - RTE environment-specific services +filem - Remote file management +grpcomm - RTE group communications +iof - I/O forwarding +notifier - System-level notification support +odls - OpenRTE daemon local launch subsystem +oob - Out of band messaging +plm - Process lifecycle management +ras - Resource allocation system +rmaps - Resource mapping system +rml - RTE message layer +routed - Routing table for the RML +rtc - Run-time control framework +schizo - OpenRTE personality framework +snapc - Snapshot coordination +sstore - Distributed scalable storage +state - RTE state machine + +Miscellaneous frameworks: +------------------------- + +allocator - Memory allocator +backtrace - Debugging call stack backtrace support +btl - point-to-point Byte Transfer Layer +compress - Compression algorithms +crs - Checkpoint and restart service +dl - Dynamic loading library interface +event - Event library (libevent) versioning support +hwloc - Hardware locality (hwloc) versioning support +if - OS IP interface support +installdirs - Installation directory relocation services +memchecker - Run-time memory checking +memcpy - Memory copy support +memory - Memory management hooks +mpool - Memory pooling +patcher - Symbol patcher hooks +pmix - Process management interface (exascale) +pstat - Process status +rcache - Memory registration cache +reachable - Network reachability computations +sec - Security framework +shmem - Shared memory support (NOT related to OSHMEM) +timer - High-resolution timers + +--------------------------------------------------------------------------- + +Each framework typically has one or more components that are used at +run-time. For example, the btl framework is used by the MPI layer to +send bytes across different types underlying networks. The tcp btl, +for example, sends messages across TCP-based networks; the openib btl +sends messages across OpenFabrics-based networks. + +Each component typically has some tunable parameters that can be +changed at run-time. Use the ompi_info command to check a component +to see what its tunable parameters are. For example: + + shell$ ompi_info --param btl tcp + +shows a some of parameters (and default values) for the tcp btl +component. + +Note that ompi_info only shows a small number a component's MCA +parameters by default. Each MCA parameter has a "level" value from 1 +to 9, corresponding to the MPI-3 MPI_T tool interface levels. In Open +MPI, we have interpreted these nine levels as three groups of three: + + 1. End user / basic + 2. End user / detailed + 3. End user / all + + 4. Application tuner / basic + 5. Application tuner / detailed + 6. Application tuner / all + + 7. MPI/OSHMEM developer / basic + 8. MPI/OSHMEM developer / detailed + 9. MPI/OSHMEM developer / all + +Here's how the three sub-groups are defined: + + 1. End user: Generally, these are parameters that are required for + correctness, meaning that someone may need to set these just to + get their MPI/OSHMEM application to run correctly. + 2. Application tuner: Generally, these are parameters that can be + used to tweak MPI application performance. + 3. MPI/OSHMEM developer: Parameters that either don't fit in the + other two, or are specifically intended for debugging / + development of Open MPI itself. + +Each sub-group is broken down into three classifications: + + 1. Basic: For parameters that everyone in this category will want to + see. + 2. Detailed: Parameters that are useful, but you probably won't need + to change them often. + 3. All: All other parameters -- probably including some fairly + esoteric parameters. + +To see *all* available parameters for a given component, specify that +ompi_info should use level 9: + + shell$ ompi_info --param btl tcp --level 9 + +These values can be overridden at run-time in several ways. At +run-time, the following locations are examined (in order) for new +values of parameters: + +1. /etc/openmpi-mca-params.conf + + This file is intended to set any system-wide default MCA parameter + values -- it will apply, by default, to all users who use this Open + MPI installation. The default file that is installed contains many + comments explaining its format. + +2. $HOME/.openmpi/mca-params.conf + + If this file exists, it should be in the same format as + /etc/openmpi-mca-params.conf. It is intended to provide + per-user default parameter values. + +3. environment variables of the form OMPI_MCA_ set equal to a + + + Where is the name of the parameter. For example, set the + variable named OMPI_MCA_btl_tcp_frag_size to the value 65536 + (Bourne-style shells): + + shell$ OMPI_MCA_btl_tcp_frag_size=65536 + shell$ export OMPI_MCA_btl_tcp_frag_size + +4. the mpirun/oshrun command line: --mca + + Where is the name of the parameter. For example: + + shell$ mpirun --mca btl_tcp_frag_size 65536 -np 2 hello_world_mpi + +These locations are checked in order. For example, a parameter value +passed on the mpirun command line will override an environment +variable; an environment variable will override the system-wide +defaults. + +Each component typically activates itself when relevant. For example, +the MX component will detect that MX devices are present and will +automatically be used for MPI communications. The SLURM component +will automatically detect when running inside a SLURM job and activate +itself. And so on. + +Components can be manually activated or deactivated if necessary, of +course. The most common components that are manually activated, +deactivated, or tuned are the "BTL" components -- components that are +used for MPI point-to-point communications on many types common +networks. + +For example, to *only* activate the TCP and "self" (process loopback) +components are used for MPI communications, specify them in a +comma-delimited list to the "btl" MCA parameter: + + shell$ mpirun --mca btl tcp,self hello_world_mpi + +To add shared memory support, add "sm" into the command-delimited list +(list order does not matter): + + shell$ mpirun --mca btl tcp,sm,self hello_world_mpi + +To specifically deactivate a specific component, the comma-delimited +list can be prepended with a "^" to negate it: + + shell$ mpirun --mca btl ^tcp hello_mpi_world + +The above command will use any other BTL component other than the tcp +component. + +=========================================================================== + +Common Questions +---------------- + +Many common questions about building and using Open MPI are answered +on the FAQ: + + https://www.open-mpi.org/faq/ + +=========================================================================== + +Got more questions? +------------------- + +Found a bug? Got a question? Want to make a suggestion? Want to +contribute to Open MPI? Please let us know! + +When submitting questions and problems, be sure to include as much +extra information as possible. This web page details all the +information that we request in order to provide assistance: + + https://www.open-mpi.org/community/help/ + +User-level questions and comments should generally be sent to the +user's mailing list (users@lists.open-mpi.org). Because of spam, only +subscribers are allowed to post to this list (ensure that you +subscribe with and post from *exactly* the same e-mail address -- +joe@example.com is considered different than +joe@mycomputer.example.com!). Visit this page to subscribe to the +user's list: + + http://lists.open-mpi.org/mailman/listinfo/users + +Developer-level bug reports, questions, and comments should generally +be sent to the developer's mailing list (devel@lists.open-mpi.org). Please +do not post the same question to both lists. As with the user's list, +only subscribers are allowed to post to the developer's list. Visit +the following web page to subscribe: + + http://lists.open-mpi.org/mailman/listinfo/devel + +Make today an Open MPI day! diff --git a/README.JAVA.txt b/README.JAVA.txt new file mode 100644 index 00000000..ca0c70ab --- /dev/null +++ b/README.JAVA.txt @@ -0,0 +1,275 @@ +*************************************************************************** +IMPORTANT NOTE + +JAVA BINDINGS ARE PROVIDED ON A "PROVISIONAL" BASIS - I.E., THEY ARE +NOT PART OF THE CURRENT OR PROPOSED MPI STANDARDS. THUS, INCLUSION OF +JAVA SUPPORT IS NOT REQUIRED BY THE STANDARD. CONTINUED INCLUSION OF +THE JAVA BINDINGS IS CONTINGENT UPON ACTIVE USER INTEREST AND +CONTINUED DEVELOPER SUPPORT. + +*************************************************************************** + +This version of Open MPI provides support for Java-based +MPI applications. + +The rest of this document provides step-by-step instructions on +building OMPI with Java bindings, and compiling and running +Java-based MPI applications. Also, part of the functionality is +explained with examples. Further details about the design, +implementation and usage of Java bindings in Open MPI can be found +in [1]. The bindings follow a JNI approach, that is, we do not +provide a pure Java implementation of MPI primitives, but a thin +layer on top of the C implementation. This is the same approach +as in mpiJava [2]; in fact, mpiJava was taken as a starting point +for Open MPI Java bindings, but they were later totally rewritten. + + [1] O. Vega-Gisbert, J. E. Roman, and J. M. Squyres. "Design and + implementation of Java bindings in Open MPI". Parallel Comput. + 59: 1-20 (2016). + + [2] M. Baker et al. "mpiJava: An object-oriented Java interface to + MPI". In Parallel and Distributed Processing, LNCS vol. 1586, + pp. 748-762, Springer (1999). + +============================================================================ + +Building Java Bindings + +If this software was obtained as a developer-level +checkout as opposed to a tarball, you will need to start your build by +running ./autogen.pl. This will also require that you have a fairly +recent version of autotools on your system - see the HACKING file for +details. + +Java support requires that Open MPI be built at least with shared libraries +(i.e., --enable-shared) - any additional options are fine and will not +conflict. Note that this is the default for Open MPI, so you don't +have to explicitly add the option. The Java bindings will build only +if --enable-mpi-java is specified, and a JDK is found in a typical +system default location. + +If the JDK is not in a place where we automatically find it, you can +specify the location. For example, this is required on the Mac +platform as the JDK headers are located in a non-typical location. Two +options are available for this purpose: + +--with-jdk-bindir= - the location of javac and javah +--with-jdk-headers= - the directory containing jni.h + +For simplicity, typical configurations are provided in platform files +under contrib/platform/hadoop. These will meet the needs of most +users, or at least provide a starting point for your own custom +configuration. + +In summary, therefore, you can configure the system using the +following Java-related options: + +$ ./configure --with-platform=contrib/platform/hadoop/ +... + +or + +$ ./configure --enable-mpi-java --with-jdk-bindir= + --with-jdk-headers= ... + +or simply + +$ ./configure --enable-mpi-java ... + +if JDK is in a "standard" place that we automatically find. + +---------------------------------------------------------------------------- + +Running Java Applications + +For convenience, the "mpijavac" wrapper compiler has been provided for +compiling Java-based MPI applications. It ensures that all required MPI +libraries and class paths are defined. You can see the actual command +line using the --showme option, if you are interested. + +Once your application has been compiled, you can run it with the +standard "mpirun" command line: + +$ mpirun java + +For convenience, mpirun has been updated to detect the "java" command +and ensure that the required MPI libraries and class paths are defined +to support execution. You therefore do NOT need to specify the Java +library path to the MPI installation, nor the MPI classpath. Any class +path definitions required for your application should be specified +either on the command line or via the CLASSPATH environmental +variable. Note that the local directory will be added to the class +path if nothing is specified. + +As always, the "java" executable, all required libraries, and your +application classes must be available on all nodes. + +---------------------------------------------------------------------------- + +Basic usage of Java bindings + +There is an MPI package that contains all classes of the MPI Java +bindings: Comm, Datatype, Request, etc. These classes have a direct +correspondence with classes defined by the MPI standard. MPI primitives +are just methods included in these classes. The convention used for +naming Java methods and classes is the usual camel-case convention, +e.g., the equivalent of MPI_File_set_info(fh,info) is fh.setInfo(info), +where fh is an object of the class File. + +Apart from classes, the MPI package contains predefined public attributes +under a convenience class MPI. Examples are the predefined communicator +MPI.COMM_WORLD or predefined datatypes such as MPI.DOUBLE. Also, MPI +initialization and finalization are methods of the MPI class and must +be invoked by all MPI Java applications. The following example illustrates +these concepts: + +import mpi.*; + +class ComputePi { + + public static void main(String args[]) throws MPIException { + + MPI.Init(args); + + int rank = MPI.COMM_WORLD.getRank(), + size = MPI.COMM_WORLD.getSize(), + nint = 100; // Intervals. + double h = 1.0/(double)nint, sum = 0.0; + + for(int i=rank+1; i<=nint; i+=size) { + double x = h * ((double)i - 0.5); + sum += (4.0 / (1.0 + x * x)); + } + + double sBuf[] = { h * sum }, + rBuf[] = new double[1]; + + MPI.COMM_WORLD.reduce(sBuf, rBuf, 1, MPI.DOUBLE, MPI.SUM, 0); + + if(rank == 0) System.out.println("PI: " + rBuf[0]); + MPI.Finalize(); + } +} + +---------------------------------------------------------------------------- + +Exception handling + +Java bindings in Open MPI support exception handling. By default, errors +are fatal, but this behavior can be changed. The Java API will throw +exceptions if the MPI.ERRORS_RETURN error handler is set: + + MPI.COMM_WORLD.setErrhandler(MPI.ERRORS_RETURN); + +If you add this statement to your program, it will show the line +where it breaks, instead of just crashing in case of an error. +Error-handling code can be separated from main application code by +means of try-catch blocks, for instance: + + try + { + File file = new File(MPI.COMM_SELF, "filename", MPI.MODE_RDONLY); + } + catch(MPIException ex) + { + System.err.println("Error Message: "+ ex.getMessage()); + System.err.println(" Error Class: "+ ex.getErrorClass()); + ex.printStackTrace(); + System.exit(-1); + } + + +---------------------------------------------------------------------------- + +How to specify buffers + +In MPI primitives that require a buffer (either send or receive) the +Java API admits a Java array. Since Java arrays can be relocated by +the Java runtime environment, the MPI Java bindings need to make a +copy of the contents of the array to a temporary buffer, then pass the +pointer to this buffer to the underlying C implementation. From the +practical point of view, this implies an overhead associated to all +buffers that are represented by Java arrays. The overhead is small +for small buffers but increases for large arrays. + +There is a pool of temporary buffers with a default capacity of 64K. +If a temporary buffer of 64K or less is needed, then the buffer will +be obtained from the pool. But if the buffer is larger, then it will +be necessary to allocate the buffer and free it later. + +The default capacity of pool buffers can be modified with an 'mca' +parameter: + + mpirun --mca mpi_java_eager size ... + +Where 'size' is the number of bytes, or kilobytes if it ends with 'k', +or megabytes if it ends with 'm'. + +An alternative is to use "direct buffers" provided by standard +classes available in the Java SDK such as ByteBuffer. For convenience +we provide a few static methods "new[Type]Buffer" in the MPI class +to create direct buffers for a number of basic datatypes. Elements +of the direct buffer can be accessed with methods put() and get(), +and the number of elements in the buffer can be obtained with the +method capacity(). This example illustrates its use: + + int myself = MPI.COMM_WORLD.getRank(); + int tasks = MPI.COMM_WORLD.getSize(); + + IntBuffer in = MPI.newIntBuffer(MAXLEN * tasks), + out = MPI.newIntBuffer(MAXLEN); + + for(int i = 0; i < MAXLEN; i++) + out.put(i, myself); // fill the buffer with the rank + + Request request = MPI.COMM_WORLD.iAllGather( + out, MAXLEN, MPI.INT, in, MAXLEN, MPI.INT); + request.waitFor(); + request.free(); + + for(int i = 0; i < tasks; i++) + { + for(int k = 0; k < MAXLEN; k++) + { + if(in.get(k + i * MAXLEN) != i) + throw new AssertionError("Unexpected value"); + } + } + +Direct buffers are available for: BYTE, CHAR, SHORT, INT, LONG, +FLOAT, and DOUBLE. There is no direct buffer for booleans. + +Direct buffers are not a replacement for arrays, because they have +higher allocation and deallocation costs than arrays. In some +cases arrays will be a better choice. You can easily convert a +buffer into an array and vice versa. + +All non-blocking methods must use direct buffers and only +blocking methods can choose between arrays and direct buffers. + +The above example also illustrates that it is necessary to call +the free() method on objects whose class implements the Freeable +interface. Otherwise a memory leak is produced. + +---------------------------------------------------------------------------- + +Specifying offsets in buffers + +In a C program, it is common to specify an offset in a array with +"&array[i]" or "array+i", for instance to send data starting from +a given positon in the array. The equivalent form in the Java bindings +is to "slice()" the buffer to start at an offset. Making a "slice()" +on a buffer is only necessary, when the offset is not zero. Slices +work for both arrays and direct buffers. + + import static mpi.MPI.slice; + ... + int numbers[] = new int[SIZE]; + ... + MPI.COMM_WORLD.send(slice(numbers, offset), count, MPI.INT, 1, 0); + +---------------------------------------------------------------------------- + +If you have any problems, or find any bugs, please feel free to report +them to Open MPI user's mailing list (see +http://www.open-mpi.org/community/lists/ompi.php). diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..68a9413e --- /dev/null +++ b/VERSION @@ -0,0 +1,113 @@ +# Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. +# Copyright (c) 2008-2011 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2011 NVIDIA Corporation. All rights reserved. +# Copyright (c) 2013 Mellanox Technologies, Inc. +# All rights reserved. + +# This is the VERSION file for Open MPI, describing the precise +# version of Open MPI in this distribution. The various components of +# the version number below are combined to form a single version +# number string. + +# major, minor, and release are generally combined in the form +# ... + +major=2 +minor=0 +release=1 + +# greek is generally used for alpha or beta release tags. If it is +# non-empty, it will be appended to the version number. It does not +# have to be numeric. Common examples include: a1 (alpha release 1), +# b1 (beta release 1), rc2 (release candidate 2). The only +# requirement is that it must be entirely printable ASCII characters +# and have no white space. + +greek= + +# If repo_rev is empty, then the repository version number will be +# obtained during "make dist" via the "git describe --tags --always" +# command, or with the date (if "git describe" fails) in the form of +# "date". + +repo_rev=v2.0.0-257-gee86e07 + +# If tarball_version is not empty, it is used as the version string in +# the tarball filename, regardless of all other versions listed in +# this file. For example, if tarball_version is empty, the tarball +# filename will be of the form +# openmpi-...tar.*. However, if +# tarball_version is not empty, the tarball filename will be of the +# form openmpi-.tar.*. + +tarball_version= + +# The date when this release was created + +date="Sep 02, 2016" + +# The shared library version of each of Open MPI's public libraries. +# These versions are maintained in accordance with the "Library +# Interface Versions" chapter from the GNU Libtool documentation. The +# first Open MPI release to programatically specify these versions was +# v1.3.4 (note that Libtool defaulted all prior releases to 0:0:0). +# All changes in these version numbers are dictated by the Open MPI +# release managers (not individual developers). Notes: + +# 1. Since these version numbers are associated with *releases*, the +# version numbers maintained on the Open MPI SVN trunk (and developer +# branches) is always 0:0:0 for all libraries. + +# 2. The version number of libmpi refers to the public MPI interfaces. +# It does not refer to any internal interfaces. + +# 3. Similar to libmpi, the version numbers of the Fortran libraries +# refer to the public MPI interfaces. For example, that there have +# been typo fixes in the parameter types to mpif.h Fortran library +# functions over time; these technically did not change the interface +# because Fortran 77 does not link by parameter type. + +# 4. Similar to libmpi, libmpi_cxx's version number refers to the +# public MPI interfaces. Note that this version number may or may not +# be affected by changes to inlined functions in OMPI's +# header-file-based C++ bindings implementation. + +# 5. The ORTE and OPAL libraries will change versions when their +# public interfaces change (as relative to the layer(s) above them). +# None of the ORTE and OPAL interfaces are public to MPI applications, +# but they are "public" within the OMPI code base and select 3rd party +# software packages. + +# Version numbers are described in the Libtool current:revision:age +# format. + +libmpi_so_version=20:1:0 +libmpi_cxx_so_version=20:0:0 +libmpi_mpifh_so_version=20:0:0 +libmpi_usempi_tkr_so_version=20:0:0 +libmpi_usempi_ignore_tkr_so_version=20:0:0 +libmpi_usempif08_so_version=20:0:0 +libopen_rte_so_version=20:0:0 +libopen_pal_so_version=21:0:1 +libmpi_java_so_version=20:1:0 +liboshmem_so_version=20:1:0 + +# "Common" components install standalone libraries that are run-time +# linked by one or more components. So they need to be versioned as +# well. Yuck; this somewhat breaks the +# components-don't-affect-the-build-system abstraction. + +# OMPI layer +libompitrace_so_version=20:0:0 + +# ORTE layer +libmca_orte_common_alps_so_version=20:0:0 + +# OPAL layer +# FIXME AMCK +libmca_ompi_common_ompio_so_version=20:0:0 +libmca_opal_common_cuda_so_version=20:0:0 +libmca_opal_common_libfabric_so_version=20:0:0 +libmca_opal_common_sm_so_version=20:0:0 +libmca_opal_common_ugni_so_version=20:1:0 +libmca_opal_common_verbs_so_version=20:0:0 diff --git a/autogen.pl b/autogen.pl new file mode 100755 index 00000000..9dd41a81 --- /dev/null +++ b/autogen.pl @@ -0,0 +1,1401 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2013 Mellanox Technologies, Inc. +# All rights reserved. +# Copyright (c) 2013-2014 Intel, Inc. All rights reserved. +# Copyright (c) 2015-2016 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2015 IBM Corporation. All rights reserved. +# +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +use strict; + +use Cwd; +use File::Basename; +use File::Find; +use Data::Dumper; +use Getopt::Long; + +# +# Global variables +# + +# Sentinel file to remove if we fail +my $sentinel; + +# The m4 file we'll write at the end +my $m4_output_file = "config/autogen_found_items.m4"; +my $m4; +# Sanity check file +my $topdir_file = "opal/include/opal_config_bottom.h"; +my $dnl_line = "dnl ---------------------------------------------------------------------------"; + +# Data structures to fill up with all the stuff we find +my $mca_found; +my $mpiext_found; +my $mpicontrib_found; +my @subdirs; + +# Command line parameters +my $no_ompi_arg = 0; +my $no_orte_arg = 0; +my $no_oshmem_arg = 0; +my $quiet_arg = 0; +my $debug_arg = 0; +my $help_arg = 0; +my $platform_arg = 0; +my $include_arg = 0; +my $exclude_arg = 0; +my $force_arg = 0; + +# Include/exclude lists +my $include_list; +my $exclude_list; + +# Minimum versions +my $ompi_automake_version = "1.12.2"; +my $ompi_autoconf_version = "2.69"; +my $ompi_libtool_version = "2.4.2"; + +# Search paths +my $ompi_autoconf_search = "autoconf"; +my $ompi_automake_search = "automake"; +my $ompi_libtoolize_search = "libtoolize;glibtoolize"; + +# One-time setup +my $username; +my $hostname; +my $full_hostname; + +# Patch program +my $patch_prog = "patch"; +# Solaris "patch" doesn't understand unified diffs, and will cause +# autogen.pl to hang with a "File to patch:" prompt. Default to Linux +# "patch", but use "gpatch" on Solaris. +if ($^O eq "solaris") { + $patch_prog = "gpatch"; +} + +$username = getpwuid($>); +$full_hostname = `hostname`; +chomp($full_hostname); +$hostname = $full_hostname; +$hostname =~ s/^([\w\-]+)\..+/\1/; + +############################################################################## + +sub my_die { + unlink($sentinel) + if ($sentinel); + die @_; +} + +sub my_exit { + my ($ret) = @_; + unlink($sentinel) + if ($sentinel && $ret != 0); + exit($ret); +} + +############################################################################## + +sub verbose { + print @_ + if (!$quiet_arg); +} + +sub debug { + print @_ + if ($debug_arg); +} + +sub debug_dump { + my $d = new Data::Dumper([@_]); + $d->Purity(1)->Indent(1); + debug $d->Dump; +} + +############################################################################## + +sub read_config_params { + my ($filename, $dir_prefix) = @_; + + my $dir = dirname($filename); + open(FILE, $filename) || + my_die "Can't open $filename"; + my $file; + $file .= $_ + while(); + close(FILE); + + # Save all lines of the form "foo = bar" in a hash + my $ret; + while ($file =~ s/^\s*(\w+)\s*=\s*(.+)\s*$//m) { + my $key = $1; + my $val = $2; + + # Strip off any leading and trailing "'s + $val = $1 + if ($val =~ m/^\"(.+)\"$/); + + $ret->{$key} = $val; + } + + # Split PARAM_CONFIG_FILES into an array + if (exists($ret->{PARAM_CONFIG_FILES})) { + my @out; + foreach my $f (split(/\s+/, $ret->{PARAM_CONFIG_FILES})) { + push(@out, "$dir_prefix/$f"); + } + $ret->{PARAM_CONFIG_FILES} = \@out; + } + + debug_dump($ret); + return $ret; +} + +############################################################################## + +# Process a "subdir", meaning that the directory isn't a component or +# an extension; it probably just needs an autoreconf, autogen, etc. +sub process_subdir { + my ($dir) = @_; + + # Chdir to the subdir + print "\n=== Processing subdir: $dir\n"; + my $start = Cwd::cwd(); + chdir($dir); + + # Run an action depending on what we find in that subdir + if (-x "autogen.pl") { + print "--- Found autogen.pl; running...\n"; + safe_system("./autogen.pl"); + } elsif (-x "autogen.sh") { + print "--- Found autogen.sh; running...\n"; + safe_system("./autogen.sh"); + } elsif (-f "configure.in" || -f "configure.ac") { + print "--- Found configure.in|ac; running autoreconf...\n"; + safe_system("autoreconf -ivf"); + print "--- Patching autotools output... :-(\n"; + } else { + my_die "Found subdir, but no autogen.sh or configure.in|ac to do anything"; + } + + # Ensure that we got a good configure executable. + my_die "Did not generate a \"configure\" executable in $dir.\n" + if (! -x "configure"); + + # Fix known issues in Autotools output + patch_autotools_output($start); + + # Chdir back to where we came from + chdir($start); +} + +############################################################################## + +sub process_autogen_subdirs { + my ($dir) = @_; + + my $file = "$dir/autogen.subdirs"; + if (-f $file) { + open(FILE, $file) || my_die "Can't open $file"; + while () { + chomp; + $_ =~ s/#.*$//; + $_ =~ s/^\s*//; + $_ =~ s/\s*$//; + if ($_ ne "") { + print " Found subdir: $_ (will process later)\n"; + + # Note: there's no real technical reason to defer + # processing the subdirs. It's more of an aesthetic + # reason -- don't interrupt the current flow of + # finding mca / ext / contribs (which is a nice, fast + # process). Then process the subdirs (which is a slow + # process) all at once. + push(@subdirs, "$dir/$_"); + } + } + close(FILE); + } +} + +############################################################################## + +sub mca_process_component { + my ($topdir, $project, $framework, $component) = @_; + + my $pname = $project->{name}; + my $pdir = $project->{dir}; + my $cdir = "$topdir/$pdir/mca/$framework/$component"; + + return + if (! -d $cdir); + + # Process this directory (pretty much the same treatment as for + # mpiext, so it's in a sub). + my $found_component; + + # Does this directory have a configure.m4 file? + if (-f "$cdir/configure.m4") { + $found_component->{"configure.m4"} = 1; + verbose " Found configure.m4 file\n"; + } + + $found_component->{"name"} = $component; + + # Push the results onto the $mca_found hash array + push(@{$mca_found->{$pname}->{$framework}->{"components"}}, + $found_component); + + # Is there an autogen.subdirs in here? + process_autogen_subdirs($cdir); +} + +############################################################################## + +sub ignored { + my ($dir) = @_; + + # If this directory does not have .opal_ignore, or if it has a + # .opal_unignore that has my username in it, then add it to the + # list of components. + my $ignored = 0; + + if (-f "$dir/.opal_ignore") { + $ignored = 1; + } + if (-f "$dir/.opal_unignore") { + open(UNIGNORE, "$dir/.opal_unignore") || + my_die "Can't open $dir/.opal_unignore file"; + my $unignore; + $unignore .= $_ + while (); + close(UNIGNORE); + + $ignored = 0 + if ($unignore =~ /^$username$/m || + $unignore =~ /^$username\@$hostname$/m || + $unignore =~ /^$username\@$full_hostname$/m); + } + + return $ignored; +} + +############################################################################## + +sub mca_process_framework { + my ($topdir, $project, $framework) = @_; + + my $pname = $project->{name}; + my $pdir = $project->{dir}; + + # Does this framework have a configure.m4 file? + my $dir = "$topdir/$pdir/mca/$framework"; + if (-f "$dir/configure.m4") { + $mca_found->{$pname}->{$framework}->{"configure.m4"} = 1; + verbose " Found framework configure.m4 file\n"; + } + + # Did we exclude all components for this framework? + if (exists($exclude_list->{$framework}) && + $exclude_list->{$framework}[0] eq "AGEN_EXCLUDE_ALL") { + verbose " => Excluded\n"; + } else { + # Look for component directories in this framework + if (-d $dir) { + $mca_found->{$pname}->{$framework}->{found} = 1; + opendir(DIR, $dir) || + my_die "Can't open $dir directory"; + foreach my $d (readdir(DIR)) { + # Skip any non-directory, "base", or any dir that + # begins with "." + next + if (! -d "$dir/$d" || $d eq "base" || + substr($d, 0, 1) eq "."); + + # Skip any component that doesn't have a configure.m4 + # or Makefile.am as we couldn't build it anyway + if (! -f "$dir/$d/configure.m4" && + ! -f "$dir/$d/Makefile.am" && + ! -f "$dir/$d/configure.ac" && + ! -f "$dir/$d/configure.in") { + verbose " => No sentinel file found in $dir/$d -> Excluded\n"; + next; + } + + verbose "--- Found $pname / $framework / $d component\n"; + + # Skip if specifically excluded + if (exists($exclude_list->{$framework}) && + $exclude_list->{$framework}[0] eq $d) { + verbose " => Excluded\n"; + next; + } + + # Skip if the framework is on the include list, but + # doesn't contain this component + if (exists($include_list->{$framework})) { + my $tst = 0; + foreach my $ck (@{$include_list->{$framework}}) { + if ($ck ne $d) { + verbose " => Not included\n"; + $tst = 1; + last; + } + } + if ($tst) { + next; + } + } + + # Check ignore status + if (ignored("$dir/$d")) { + verbose " => Ignored (found .opal_ignore file)\n"; + } else { + mca_process_component($topdir, $project, $framework, $d); + } + } + } + closedir(DIR); + } +} + +############################################################################## + +sub mca_generate_framework_header(\$\@) { + my ($project, @frameworks) = @_; + my $framework_array_output=""; + my $framework_decl_output=""; + + foreach my $framework (@frameworks) { + # There is no common framework object + if ($framework ne "common") { + my $framework_name = "${project}_${framework}_base_framework"; + $framework_array_output .= " &$framework_name,\n"; + $framework_decl_output .= "extern mca_base_framework_t $framework_name;\n"; + } + } + + my $ifdef_string = uc "${project}_FRAMEWORKS_H"; + open(FRAMEWORKS_OUT, ">$project/include/$project/frameworks.h"); + printf FRAMEWORKS_OUT "%s", "/* + * This file is autogenerated by autogen.pl. Do not edit this file by hand. + */ +#ifndef $ifdef_string +#define $ifdef_string + +#include + +$framework_decl_output +static mca_base_framework_t *${project}_frameworks[] = { +$framework_array_output NULL +}; + +#endif /* $ifdef_string */\n\n"; + close(FRAMEWORKS_OUT); +} + +############################################################################## + +sub mca_process_project { + my ($topdir, $project) = @_; + + my $pname = $project->{name}; + my $pdir = $project->{dir}; + + # Does this project have a configure.m4 file? + if (-f "$topdir/$pdir/configure.m4") { + $mca_found->{$pname}->{"configure.m4"} = 1; + verbose " Found $topdir/$pdir/configure.m4 file\n"; + } + + # Look for framework directories in this project + my $dir = "$topdir/$pdir/mca"; + if (-d $dir) { + opendir(DIR, $dir) || + my_die "Can't open $dir directory"; + my @my_dirs = readdir(DIR); + @my_dirs = sort(@my_dirs); + + foreach my $d (@my_dirs) { + # Skip any non-directory, "base", or any dir that begins with "." + next + if (! -d "$dir/$d" || $d eq "base" || substr($d, 0, 1) eq "."); + + # If this directory has a $dir.h file and a base/ + # subdirectory, or its name is "common", then it's a + # framework. + if ("common" eq $d || !$project->{need_base} || + (-f "$dir/$d/$d.h" && -d "$dir/$d/base")) { + verbose "\n=== Found $pname / $d framework\n"; + mca_process_framework($topdir, $project, $d); + } + } + closedir(DIR); + } +} + +############################################################################## + +sub mca_run_global { + my ($projects) = @_; + + # For each project, go find a list of frameworks, and for each of + # those, go find a list of components. + my $topdir = Cwd::cwd(); + foreach my $p (@$projects) { + if (-d "$topdir/$p->{dir}") { + verbose "\n*** Found $p->{name} project\n"; + mca_process_project($topdir, $p); + } + } + + # Debugging output + debug_dump($mca_found); + + # Save (just) the list of MCA projects in the m4 file + my $str; + foreach my $p (@$projects) { + my $pname = $p->{name}; + # Check if this project is an MCA project (contains MCA framework) + if (exists($mca_found->{$pname})) { + $str .= "$p->{name}, "; + } + } + $str =~ s/, $//; + $m4 .= "\ndnl List of MCA projects found by autogen.pl +m4_define([mca_project_list], [$str])\n"; + + #----------------------------------------------------------------------- + + $m4 .= "\n$dnl_line +$dnl_line +$dnl_line + +dnl MCA information\n"; + + # Array for all the m4_includes that we'll need to pick up the + # configure.m4's. + my @includes; + + # Next, for each project, write the list of frameworks + foreach my $p (@$projects) { + + my $pname = $p->{name}; + my $pdir = $p->{dir}; + + if (exists($mca_found->{$pname})) { + my $frameworks_comma; + + # Does this project have a configure.m4 file? + push(@includes, "$pdir/configure.m4") + if (exists($mca_found->{$p}->{"configure.m4"})); + + # Print out project-level info + my @mykeys = keys(%{$mca_found->{$pname}}); + @mykeys = sort(@mykeys); + + # Ensure that the "common" framework is listed first + # (if it exists) + my @tmp; + push(@tmp, "common") + if (grep(/common/, @mykeys)); + foreach my $f (@mykeys) { + push(@tmp, $f) + if ($f ne "common"); + } + @mykeys = @tmp; + + foreach my $f (@mykeys) { + $frameworks_comma .= ", $f"; + + # Does this framework have a configure.m4 file? + push(@includes, "$pdir/mca/$f/configure.m4") + if (exists($mca_found->{$pname}->{$f}->{"configure.m4"})); + + # This framework does have a Makefile.am (or at least, + # it should!) + my_die "Missing $pdir/mca/$f/Makefile.am" + if (! -f "$pdir/mca/$f/Makefile.am"); + } + $frameworks_comma =~ s/^, //; + + &mca_generate_framework_header($pname, @mykeys); + + $m4 .= "$dnl_line + +dnl Frameworks in the $pname project and their corresponding directories +m4_define([mca_${pname}_framework_list], [$frameworks_comma]) + +"; + + # Print out framework-level info + foreach my $f (@mykeys) { + my $components; + my $m4_config_component_list; + my $no_config_component_list; + + # Troll through each of the found components + foreach my $comp (@{$mca_found->{$pname}->{$f}->{components}}) { + my $c = $comp->{name}; + $components .= "$c "; + + # Does this component have a configure.m4 file? + if (exists($comp->{"configure.m4"})) { + push(@includes, "$pdir/mca/$f/$c/configure.m4"); + $m4_config_component_list .= ", $c"; + } else { + $no_config_component_list .= ", $c"; + } + } + $m4_config_component_list =~ s/^, //; + $no_config_component_list =~ s/^, //; + + $m4 .= "dnl Components in the $pname / $f framework +m4_define([mca_${pname}_${f}_m4_config_component_list], [$m4_config_component_list]) +m4_define([mca_${pname}_${f}_no_config_component_list], [$no_config_component_list]) + +"; + } + } + } + + # List out all the m4_include + $m4 .= "$dnl_line + +dnl List of configure.m4 files to include\n"; + foreach my $i (@includes) { + $m4 .= "m4_include([$i])\n"; + } +} + +############################################################################## + +sub mpiext_process_extension { + my ($topdir, $ext_prefix, $extdir) = @_; + + my $edir = "$topdir/$ext_prefix/$extdir"; + return + if (! -d $edir); + + # Process this directory (pretty much the same treatment as for + # MCA components, so it's in a sub). + my $found_ext; + + $found_ext->{"name"} = $extdir; + + # Push the results onto the hash array + push(@{$mpiext_found}, $found_ext); + + # Is there an autogen.subdirs in here? + process_autogen_subdirs($edir); +} + +############################################################################## + +sub mpiext_run_global { + my ($ext_prefix) = @_; + + my $topdir = Cwd::cwd(); + + my $dir = "$topdir/$ext_prefix"; + opendir(DIR, $dir) || + my_die "Can't open $dir directory"; + foreach my $d (readdir(DIR)) { + # Skip any non-directory, "base", or any dir that begins with "." + next + if (! -d "$dir/$d" || $d eq "base" || substr($d, 0, 1) eq "."); + + # If this directory has a configure.m4, then it's an + # extension. + if (-f "$dir/$d/configure.m4") { + verbose "=== Found $d MPI extension"; + + # Check ignore status + if (ignored("$dir/$d")) { + verbose " (ignored)\n"; + } else { + verbose "\n"; + mpiext_process_extension($topdir, $ext_prefix, $d); + } + } + } + closedir(DIR); + debug_dump($mpiext_found); + + #----------------------------------------------------------------------- + + $m4 .= "\n$dnl_line +$dnl_line +$dnl_line + +dnl Open MPI extensions information +$dnl_line\n\n"; + + # Array for all the m4_includes that we'll need to pick up the + # configure.m4's. + my @includes; + my $m4_config_ext_list; + + # Troll through each of the found exts + foreach my $ext (@{$mpiext_found}) { + my $e = $ext->{name}; + push(@includes, "$ext_prefix/$e/configure.m4"); + $m4_config_ext_list .= ", $e"; + } + + $m4_config_ext_list =~ s/^, //; + + # List the M4 and no configure exts + $m4 .= "dnl List of all MPI extensions +m4_define([ompi_mpiext_list], [$m4_config_ext_list])\n"; + # List out all the m4_include + $m4 .= "\ndnl List of configure.m4 files to include\n"; + foreach my $i (@includes) { + $m4 .= "m4_include([$i])\n"; + } +} + +############################################################################## + +sub mpicontrib_process { + my ($topdir, $contrib_prefix, $contribdir) = @_; + + my $cdir = "$topdir/$contrib_prefix/$contribdir"; + return + if (! -d $cdir); + + # Process this directory (pretty much the same treatment as for + # MCA components, so it's in a sub). + my $found_contrib; + + $found_contrib->{"name"} = $contribdir; + + # Push the results onto the hash array + push(@{$mpicontrib_found}, $found_contrib); + + # Is there an autogen.subdirs in here? + process_autogen_subdirs($cdir); +} + +############################################################################## + +sub mpicontrib_run_global { + my ($contrib_prefix) = @_; + + my $topdir = Cwd::cwd(); + + my $dir = "$topdir/$contrib_prefix"; + opendir(DIR, $dir) || + my_die "Can't open $dir directory"; + foreach my $d (readdir(DIR)) { + # Skip any non-directory, "base", or any dir that begins with "." + next + if (! -d "$dir/$d" || $d eq "base" || substr($d, 0, 1) eq "."); + + # If this directory has a configure.m4, then it's an + # contrib. + if (-f "$dir/$d/configure.m4") { + verbose "=== Found $d MPI contrib"; + + # Check ignore status + if (ignored("$dir/$d")) { + verbose " (ignored)\n"; + } else { + verbose "\n"; + mpicontrib_process($topdir, $contrib_prefix, $d); + } + } + } + closedir(DIR); + debug_dump($mpicontrib_found); + + #----------------------------------------------------------------------- + + $m4 .= "\n$dnl_line +$dnl_line +$dnl_line + +dnl Open MPI contrib information +$dnl_line\n\n"; + + # Array for all the m4_includes that we'll need to pick up the + # configure.m4's. + my @includes; + my $m4_config_contrib_list; + + # Troll through each of the found contribs + foreach my $contrib (@{$mpicontrib_found}) { + my $c = $contrib->{name}; + push(@includes, "$contrib_prefix/$c/configure.m4"); + $m4_config_contrib_list .= ", $c"; + } + + $m4_config_contrib_list =~ s/^, //; + + # List the M4 and no configure contribs + $m4 .= "dnl List of all MPI contribs +m4_define([ompi_mpicontrib_list], [$m4_config_contrib_list])\n"; + # List out all the m4_include + $m4 .= "\ndnl List of configure.m4 files to include\n"; + foreach my $i (@includes) { + $m4 .= "m4_include([$i])\n"; + } +} + +############################################################################## +# Find and remove stale files + +sub find_and_delete { + foreach my $file (@_) { + my $removed = 0; + if (-f $file) { + unlink($file); + $removed = 1; + } + if (-f "config/$file") { + unlink("config/$file"); + $removed = 1; + } + debug " Removed stale copy of $file\n" + if ($removed); + } +} + +############################################################################## +# Find a specific executable and ensure that it is a recent enough +# version. + +sub find_and_check { + my ($app, $app_name, $req_version) = @_; + + my @search_path = split(/;/, $app_name); + my @min_version = split(/\./, $req_version); + my @versions_found = (); + + foreach (@search_path) { + verbose " Searching for $_\n"; + my $version = `$_ --version`; + if (!defined($version)) { + verbose " $_ not found\n"; + next; + } + + # Matches a version string with 1 or more parts possibly prefixed with a letter (ex: + # v2.2) or followed by a letter (ex: 2.2.6b). This regex assumes there is a space + # before the version string and that the version is ok if there is no version. + if (!($version =~ m/\s[vV]?(\d[\d\.]*\w?)/m)) { + verbose " WARNING: $_ does not appear to support --version. Assuming it is ok\n"; + + return; + } + + $version = $1; + + verbose " Found $_ version $version; checking version...\n"; + push(@versions_found, $version); + + my @parts = split(/\./, $version); + my $i = 0; + # Check every component of the version number + while ($i <= $#min_version) { + verbose " Found version component $parts[$i] -- need $min_version[$i]\n"; + + # Check to see if there are any characters (!) in the + # version number (e.g., Libtool's "2.2.6b" -- #%@#$%!!!). + # Do separate comparisons between the number and any + # trailing digits. You can't just "lt" compare the whole + # string because "10 lt 2b" will return true. #@$@#$#@$ + # Libtool!! + $parts[$i] =~ m/(\d+)([a-z]*)/i; + my $pn = $1; + my $pa = $2; + $min_version[$i] =~ m/(\d+)([a-z]*)/i; + my $mn = $1; + my $ma = $2; + + # If the version is higher, we're done. + if ($pn > $mn) { + verbose " ==> ACCEPTED\n"; + return; + } + # If the version is lower, we're done. + elsif ($pn < $mn || + ($pn == $mn && $pa lt $ma)) { + verbose " ==> Too low! Skipping this version\n"; + last; + } + + # If the version was equal, keep checking. + ++$i; + } + + # If we found a good version, return. + if ($i > $#min_version) { + verbose " ==> ACCEPTED\n"; + return; + } + } + + # if no acceptable version found, reject it + print " +================================================================= +I could not find a recent enough copy of $app. +I need at least $req_version, but only found the following versions:\n\n"; + + my $i = 0; + foreach (@search_path) { + print " $_: $versions_found[$i]\n"; + $i++; + } + + print "\nI am gonna abort. :-( + +Please make sure you are using at least the following versions of the +tools: + + GNU Autoconf: $ompi_autoconf_version + GNU Automake: $ompi_automake_version + GNU Libtool: $ompi_libtool_version +=================================================================\n"; + my_exit(1); +} + +############################################################################## + +sub safe_system { + print "Running: " . join(/ /, @_) . "\n"; + my $ret = system(@_); + $ret >>= 8; + if (0 != $ret) { + print "Command failed: @_\n"; + my_exit($ret); + } + $ret; +} + +############################################################################## + +sub patch_autotools_output { + my ($topdir) = @_; + + # Set indentation string for verbose output depending on current directory. + my $indent_str = " "; + if ($topdir eq ".") { + $indent_str = "=== "; + } + + # Patch ltmain.sh error for PGI version numbers. Redirect stderr to + # /dev/null because this patch is only necessary for some versions of + # Libtool (e.g., 2.2.6b); it'll [rightfully] fail if you have a new + # enough Libtool that dosn't need this patch. But don't alarm the + # user and make them think that autogen failed if this patch fails -- + # make the errors be silent. + # Also patch ltmain.sh for NAG compiler + if (-f "config/ltmain.sh") { + verbose "$indent_str"."Patching PGI compiler version numbers in ltmain.sh\n"; + system("$patch_prog -N -p0 < $topdir/config/ltmain_pgi_tp.diff >/dev/null 2>&1"); + unlink("config/ltmain.sh.rej"); + + verbose "$indent_str"."Patching \"-pthread\" option for NAG compiler in ltmain.sh\n"; + system("$patch_prog -N -p0 < $topdir/config/ltmain_nag_pthread.diff >/dev/null 2>&1"); + unlink("config/ltmain.sh.rej"); + } + + # If there's no configure script, there's nothing else to do. + return + if (! -f "configure"); + my @verbose_out; + + # Total ugh. We have to patch the configure script itself. See below + # for explainations why. + open(IN, "configure") || my_die "Can't open configure"; + my $c; + $c .= $_ + while(); + close(IN); + my $c_orig = $c; + + # LT <=2.2.6b need to be patched for the PGI 10.0 fortran compiler + # name (pgfortran). The following comes from the upstream LT patches: + # http://lists.gnu.org/archive/html/libtool-patches/2009-11/msg00012.html + # http://lists.gnu.org/archive/html/bug-libtool/2009-11/msg00045.html + # Note that that patch is part of Libtool (which is not in this OMPI + # source tree); we can't fix it. So all we can do is patch the + # resulting configure script. :-( + push(@verbose_out, $indent_str . "Patching configure for Libtool PGI 10 fortran compiler name\n"); + $c =~ s/gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn/gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn/g; + $c =~ s/pgcc\* \| pgf77\* \| pgf90\* \| pgf95\*\)/pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)/g; + $c =~ s/pgf77\* \| pgf90\* \| pgf95\*\)/pgf77* | pgf90* | pgf95* | pgfortran*)/g; + + # Similar issue as above -- the PGI 10 version number broke <=LT + # 2.2.6b's version number checking regexps. Again, we can't fix the + # Libtool install; all we can do is patch the resulting configure + # script. :-( The following comes from the upstream patch: + # http://lists.gnu.org/archive/html/libtool-patches/2009-11/msg00016.html + push(@verbose_out, $indent_str . "Patching configure for Libtool PGI version number regexps\n"); + $c =~ s/\*pgCC\\ \[1-5\]\* \| \*pgcpp\\ \[1-5\]\*/*pgCC\\ [1-5]\.* | *pgcpp\\ [1-5]\.*/g; + + # Similar issue as above -- fix the case statements that handle the Sun + # Fortran version strings. + # + # Note: we have to use octal escapes to match '*Sun\ F*) and the + # four succeeding lines in the bourne shell switch statement. + # \ = 134 + # ) = 051 + # * = 052 + # + # Below is essentially an upstream patch for Libtool which we want + # made available to Open MPI users running older versions of Libtool + + foreach my $tag (("", "_FC")) { + + # We have to change the search pattern and substitution on each + # iteration to take into account the tag changing + my $search_string = '\052Sun\134 F\052.*\n.*\n\s+' . + "lt_prog_compiler_pic${tag}" . '.*\n.*\n.*\n.*\n'; + my $replace_string = " + *Sun\\ Ceres\\ Fortran* | *Sun*Fortran*\\ [[1-7]].* | *Sun*Fortran*\\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic${tag}='-KPIC' + lt_prog_compiler_static${tag}='-Bstatic' + lt_prog_compiler_wl${tag}='' + ;; + *Sun\\ F* | *Sun*Fortran*) + lt_prog_compiler_pic${tag}='-KPIC' + lt_prog_compiler_static${tag}='-Bstatic' + lt_prog_compiler_wl${tag}='-Qoption ld ' + ;; +"; + + push(@verbose_out, $indent_str . "Patching configure for Sun Studio Fortran version strings ($tag)\n"); + $c =~ s/$search_string/$replace_string/; + } + + foreach my $tag (("", "_FC")) { + + # We have to change the search pattern and substitution on each + # iteration to take into account the tag changing + my $search_string = 'lf95\052.*# Lahey Fortran 8.1\n\s+' . + "whole_archive_flag_spec${tag}=" . '\n\s+' . + "tmp_sharedflag='--shared' ;;" . '\n\s+' . + 'xl'; + my $replace_string = "lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec${tag}= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared';; + xl"; + + push(@verbose_out, $indent_str . "Patching configure for NAG compiler ($tag)\n"); + $c =~ s/$search_string/$replace_string/; + } + + # Oracle has apparently begun (as of 12.5-beta) removing the "Sun" branding. + # So this patch (cumulative over the previous one) is required. + push(@verbose_out, $indent_str . "Patching configure for Oracle Studio Fortran version strings\n"); + $c =~ s/\*Sun\*Fortran\*\)/*Sun*Fortran* | *Studio*Fortran*)/g; + $c =~ s/\*Sun\\ F\*\)(.*\n\s+tmp_sharedflag=)/*Sun\\ F* | *Studio*Fortran*)$1/g; + + # See http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=v2.2.6-201-g519bf91 for details + # Note that this issue was fixed in LT 2.2.8, however most distros are still using 2.2.6b + + push(@verbose_out, $indent_str . "Patching configure for IBM xlf libtool bug\n"); + $c =~ s/(\$LD -shared \$libobjs \$deplibs \$)compiler_flags( -soname \$soname)/$1linker_flags$2/g; + + #Check if we are using a recent enough libtool that supports PowerPC little endian + if(index($c, 'powerpc64le-*linux*)') == -1) { + push(@verbose_out, $indent_str . "Patching configure for PowerPC little endian support\n"); + my $replace_string = "x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*|"; + $c =~ s/x86_64-\*kfreebsd\*-gnu\|x86_64-\*linux\*\|ppc\*-\*linux\*\|powerpc\*-\*linux\*\|/$replace_string/g; + $replace_string = + "powerpc64le-*linux*)\n\t LD=\"\${LD-ld} -m elf32lppclinux\"\n\t ;;\n\t powerpc64-*linux*)"; + $c =~ s/ppc64-\*linux\*\|powerpc64-\*linux\*\)/$replace_string/g; + $replace_string = + "powerpcle-*linux*)\n\t LD=\"\${LD-ld} -m elf64lppc\"\n\t ;;\n\t powerpc-*linux*)"; + $c =~ s/ppc\*-\*linux\*\|powerpc\*-\*linux\*\)/$replace_string/g; + } + + # Fix consequence of broken libtool.m4 + # see http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00002.html and + # https://github.com/open-mpi/ompi/issues/751 + push(@verbose_out, $indent_str . "Patching configure for libtool.m4 bug\n"); + # patch for libtool < 2.4.3 + $c =~ s/# Some compilers place space between "-\{L,R\}" and the path.\n # Remove the space.\n if test \$p = \"-L\" \|\|/# Some compilers place space between "-\{L,-l,R\}" and the path.\n # Remove the spaces.\n if test \$p = \"-L\" \|\|\n test \$p = \"-l\" \|\|/g; + # patch for libtool >= 2.4.3 + $c =~ s/# Some compilers place space between "-\{L,R\}" and the path.\n # Remove the space.\n if test x-L = \"\$p\" \|\|\n test x-R = \"\$p\"\; then/# Some compilers place space between "-\{L,-l,R\}" and the path.\n # Remove the spaces.\n if test x-L = \"x\$p\" \|\|\n test x-l = \"x\$p\" \|\|\n test x-R = \"x\$p\"\; then/g; + + # Only write out verbose statements and a new configure if the + # configure content actually changed + return + if ($c eq $c_orig); + foreach my $str (@verbose_out) { + verbose($str); + } + + open(OUT, ">configure.patched") || my_die "Can't open configure.patched"; + print OUT $c; + close(OUT); + # Use cp so that we preserve permissions on configure + safe_system("cp configure.patched configure"); + unlink("configure.patched"); +} + +sub in_tarball { + my $tarball = 0; + open(IN, "VERSION") || my_die "Can't open VERSION"; + # If repo_rev is not an empty string, we are in a tarball + while () { + my $line = $_; + my @fields = split(/=/,$line); + if ($fields[0] eq "repo_rev") { + if ($fields[1] ne "\n") { + $tarball = 1; + last; + } + } + } + close(IN); + return $tarball; +} + +############################################################################## +############################################################################## +## main - do the real work... +############################################################################## +############################################################################## + +# Command line parameters + +my $ok = Getopt::Long::GetOptions("no-ompi" => \$no_ompi_arg, + "no-orte" => \$no_orte_arg, + "no-oshmem" => \$no_oshmem_arg, + "quiet|q" => \$quiet_arg, + "debug|d" => \$debug_arg, + "help|h" => \$help_arg, + "platform=s" => \$platform_arg, + "include=s" => \$include_arg, + "exclude=s" => \$exclude_arg, + "force|f" => \$force_arg, + ); + +if (!$ok || $help_arg) { + print "Invalid command line argument.\n\n" + if (!$ok); + print "Options: + --no-ompi | -no-ompi Do not build the Open MPI layer + --no-orte | -no-orte Do not build the ORTE layer + --no-oshmem | -no-oshmem Do not build the OSHMEM layer + --quiet | -q Do not display normal verbose output + --debug | -d Output lots of debug information + --help | -h This help list + --platform | -p Specify a platform file to be parsed for no_build + and only_build directives + --include | -i Comma-separated list of framework-component pairs + to be exclusively built - i.e., all other components + will be ignored and only those specified will be marked + to build + --exclude | -e Comma-separated list of framework or framework-component + to be excluded from the build + --force | -f Run even if invoked from the source tree of an expanded + distribution tarball\n"; + my_exit($ok ? 0 : 1); +} + +#--------------------------------------------------------------------------- + +# Check for project existence +my $project_name_long = "Open MPI"; +my $project_name_short = "openmpi"; + +if (! -e "ompi") { + $no_ompi_arg = 1; + debug "No ompi subdirectory found - will not build MPI layer\n"; +} +if (! -e "orte") { + $no_orte_arg = 1; + debug "No orte subdirectory found - will not build ORTE\n"; +} +if (! -e "oshmem") { + $no_oshmem_arg = 1; + debug "No oshmem subdirectory found - will not build OSHMEM\n"; +} + +if (-e "orcm") { + # bozo check - ORCM requires ORTE + if ($no_orte_arg == 1) { + print "Cannot build ORCM without ORTE\n"; + my_exit(1); + } + $project_name_long = "Open Resilient Cluster Manager"; + $project_name_short = "open-rcm"; +} elsif ($no_ompi_arg == 1) { + if ($no_orte_arg == 0) { + $project_name_long = "Open MPI Run Time Environment"; + $project_name_short = "open-rte"; + } else { + $project_name_long = "Open Portability Access Layer"; + $project_name_short = "open-pal"; + } +} + +#--------------------------------------------------------------------------- + +$full_hostname = `hostname`; +chomp($full_hostname); + +$m4 = "dnl +dnl \$HEADER\$ +dnl +$dnl_line +dnl This file is automatically created by autogen.pl; it should not +dnl be edited by hand!! +dnl +dnl Generated by $username at " . localtime(time) . " +dnl on $full_hostname. +$dnl_line\n\n"; + +#--------------------------------------------------------------------------- + +# Verify that we're in the OMPI root directorty by checking for a token file. + +my_die "Not at the root directory of an OMPI source tree" + if (! -f "config/opal_try_assemble.m4"); + +my_die "autogen.pl has been invoked in the source tree of an Open MPI distribution tarball; aborting... +You likely do not need to invoke \"autogen.pl\" -- you can probably run \"configure\" directly. +If you really know what you are doing, and really need to run autogen.pl, use the \"--force\" flag." + if (!$force_arg && in_tarball()); + +# Now that we've verified that we're in the top-level OMPI directory, +# set the sentinel file to remove if we abort. +$sentinel = Cwd::cwd() . "/configure"; + +#--------------------------------------------------------------------------- + +my $step = 1; +verbose "Open MPI autogen (buckle up!) + +$step. Checking tool versions\n\n"; + +# Check the autotools revision levels +&find_and_check("autoconf", $ompi_autoconf_search, $ompi_autoconf_version); +&find_and_check("libtool", $ompi_libtoolize_search, $ompi_libtool_version); +&find_and_check("automake", $ompi_automake_search, $ompi_automake_version); + +#--------------------------------------------------------------------------- + +# Save the platform file in the m4 +$m4 .= "dnl Platform file\n"; + +# Process platform arg, if provided +if ($platform_arg) { + $m4 .= "m4_define([autogen_platform_file], [$platform_arg])\n\n"; + open(IN, $platform_arg) || my_die "Can't open $platform_arg"; + # Read all lines from the file + while () { + my $line = $_; + my @fields = split(/=/,$line); + if ($fields[0] eq "enable_mca_no_build") { + if ($exclude_arg) { + print "The specified platform file includes an +enable_mca_no_build line. However, your command line +also contains an exclude specification. Only one of +these directives can be given.\n"; + my_exit(1); + } + $exclude_arg = $fields[1]; + } elsif ($fields[0] eq "enable_mca_only_build") { + if ($include_arg) { + print "The specified platform file includes an +enable_mca_only_build line. However, your command line +also contains an include specification. Only one of +these directives can be given.\n"; + my_exit(1); + } + $include_arg = $fields[1]; + } + } + close(IN); +} else { + # No platform file -- write an empty list + $m4 .= "m4_define([autogen_platform_file], [])\n\n"; +} + +if ($exclude_arg) { + debug "Using exclude list: $exclude_arg"; + my @list = split(/,/, $exclude_arg); + foreach (@list) { + my @pairs = split(/-/, $_); + if (exists($pairs[1])) { + # Remove any trailing newlines + chomp($pairs[1]); + debug " Adding ".$pairs[0]."->".$pairs[1]." to exclude list\n"; + push(@{$exclude_list->{$pairs[0]}}, $pairs[1]); + } else { + debug " Adding $pairs[0] to exclude list\n"; + push(@{$exclude_list->{$pairs[0]}}, "AGEN_EXCLUDE_ALL"); + } + } +} +if ($include_arg) { + debug "Using include list: $include_arg"; + my @list = split(/,/, $include_arg); + foreach (@list) { + my @pairs = split(/-/, $_); + if (exists($pairs[1])) { + # Remove any trailing newlines + chomp($pairs[1]); + debug " Adding ".$pairs[0]."->".$pairs[1]." to include list\n"; + push(@{$include_list->{$pairs[0]}}, $pairs[1]); + } + # NOTE: it makes no sense to include all as that is the default + # so ignore that scenario here, if given + } +} + +#--------------------------------------------------------------------------- + +++$step; +verbose "\n$step. Running template-generating scripts\n\n"; + +# These scripts generate fortran header files of different types, but +# guaranteed to have the same value (i.e., so humans don't have to +# maintain two sets of files, and potentially have values get out of +# sync). + +my @scripts; +push(@scripts, "ompi/include/mpif-values.pl"); + +foreach my $s (@scripts) { + verbose "=== $s\n"; + if (! -x $s) { + print "Cannot find executable $s!\nAborting.\n"; + my_exit(1); + } + if (system($s) != 0) { + print "Script failed: $s\n"; + my_exit(1); + } +} + +#--------------------------------------------------------------------------- + +# Find projects, frameworks, components +++$step; +verbose "\n$step. Searching for projects, MCA frameworks, and MCA components\n"; + +my $ret; + +# Figure out if we're at the top level of the OMPI tree or not. +if (! (-f "VERSION" && -f "configure.ac" && -f $topdir_file)) { + print("\n\nYou must run this script from the top-level directory of the Open MPI tree.\n\n"); + my_exit(1); +} + +# Top-level projects to examine +my $projects; +push(@{$projects}, { name => "opal", dir => "opal", need_base => 1 }); +push(@{$projects}, { name => "orte", dir => "orte", need_base => 1 }) + if (!$no_orte_arg); +push(@{$projects}, { name => "ompi", dir => "ompi", need_base => 1 }) + if (!$no_ompi_arg); +push(@{$projects}, { name => "oshmem", dir => "oshmem", need_base => 1 }) + if (!$no_ompi_arg && !$no_orte_arg && !$no_oshmem_arg); +push(@{$projects}, { name => "orcm", dir => "orcm", need_base => 1 }) + if (-e "orcm"); + +$m4 .= "dnl Separate m4 define for each project\n"; +foreach my $p (@$projects) { + $m4 .= "m4_define([project_$p->{name}], [1])\n"; +} + +$m4 .= "\ndnl Project names +m4_define([project_name_long], [$project_name_long]) +m4_define([project_name_short], [$project_name_short])\n"; + +# Setup MCA +mca_run_global($projects); + +#--------------------------------------------------------------------------- + +# Find MPI extensions and contribs +if (!$no_ompi_arg) { + ++$step; + verbose "\n$step. Searching for Open MPI extensions\n\n"; + mpiext_run_global("ompi/mpiext"); + + ++$step; + verbose "\n$step. Searching for Open MPI contribs\n\n"; + mpicontrib_run_global("ompi/contrib"); +} + +#--------------------------------------------------------------------------- + +# Process all subdirs that we found in previous steps +++$step; +verbose "\n$step. Processing autogen.subdirs directories\n"; + +if ($#subdirs >= 0) { + foreach my $d (@subdirs) { + process_subdir($d); + } +} else { + print "\n"; +} + +#--------------------------------------------------------------------------- + +# If we got here, all was good. Run the auto tools. +++$step; +verbose "\n$step. Running autotools on top-level tree\n\n"; + +# Remove old versions of the files (this is probably overkill, but...) +verbose "==> Remove stale files\n"; +find_and_delete(qw/config.guess config.sub depcomp compile install-sh ltconfig + ltmain.sh missing mkinstalldirs libtool/); + +# Remove the old m4 file and write the new one +verbose "==> Writing m4 file with autogen.pl results\n"; +unlink($m4_output_file); +open(M4, ">$m4_output_file") || + my_die "Can't open $m4_output_file"; +print M4 $m4; +close(M4); + +# Generate the version checking script with autom4te +verbose "==> Generating opal_get_version.sh\n"; +chdir("config"); +safe_system("autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh"); + +# Run autoreconf +verbose "==> Running autoreconf\n"; +chdir(".."); +my $cmd = "autoreconf -ivf --warnings=all,no-obsolete,no-override -I config"; +foreach my $project (@{$projects}) { + $cmd .= " -I $project->{dir}/config" + if (-d "$project->{dir}/config"); +} +safe_system($cmd); + +patch_autotools_output("."); + +#--------------------------------------------------------------------------- + +verbose " +================================================ +Open MPI autogen: completed successfully. w00t! +================================================\n\n"; + +# Done! +exit(0); diff --git a/config/Makefile.am b/config/Makefile.am new file mode 100644 index 00000000..85a222a7 --- /dev/null +++ b/config/Makefile.am @@ -0,0 +1,34 @@ +# +# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2010 Oracle and/or its affiliates. All rights +# reserved. +# Copyright (c) 2014-2015 Intel, Inc. All rights reserved. +# Copyright (c) 2016 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +EXTRA_DIST = \ + distscript.sh \ + opal_get_version.m4sh \ + ltmain_nag_pthread.diff \ + ltmain_pgi_tp.diff \ + opal_mca_priority_sort.pl \ + find_common_syms + +maintainer-clean-local: + rm -f opal_get_version.sh diff --git a/config/Makefile.options b/config/Makefile.options new file mode 100644 index 00000000..7f42e967 --- /dev/null +++ b/config/Makefile.options @@ -0,0 +1,20 @@ +# -*- makefile -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AUTOMAKE_OPTIONS = foreign dist-bzip2 diff --git a/config/c_get_alignment.m4 b/config/c_get_alignment.m4 new file mode 100644 index 00000000..4ec7bf7c --- /dev/null +++ b/config/c_get_alignment.m4 @@ -0,0 +1,72 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_C_GET_ALIGN(type, config_var) +# ---------------------------------- +# Determine datatype alignment. +# First arg is type, 2nd arg is config var to define. +# Now that we require C99 compilers, we include stdbool.h +# in the alignment test so that we can find the definition +# of "bool" when we test for its alignment. We might be able +# to avoid this if we test for alignemtn of _Bool, but +# since we use "bool" in the code, let's be safe and check +# what we use. Yes, they should be the same - but "should" and +# "are" frequently differ +AC_DEFUN([OPAL_C_GET_ALIGNMENT],[ + AC_CACHE_CHECK([alignment of $1], + [AS_TR_SH([opal_cv_c_align_$1])], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT + #include ], +[[ + struct foo { char c; $1 x; }; + struct foo *p = (struct foo *) malloc(sizeof(struct foo)); + int diff; + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + diff = ((char *)&p->x) - ((char *)&p->c); + fprintf(f, "%d\n", (diff >= 0) ? diff : -diff); +]])], [AS_TR_SH([opal_cv_c_align_$1])=`cat conftestval`], + [AC_MSG_WARN([*** Problem running configure test!]) + AC_MSG_WARN([*** See config.log for details.]) + AC_MSG_ERROR([*** Cannot continue.])], + [ # cross compile - do a non-executable test. Trick + # taken from the Autoconf 2.59c. Switch to using + # AC_CHECK_ALIGNOF when we can require Autoconf 2.60. + _AC_COMPUTE_INT([(long int) offsetof (opal__type_alignof_, y)], + [AS_TR_SH([opal_cv_c_align_$1])], + [AC_INCLUDES_DEFAULT +#include + +#ifndef offsetof +# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0) +#endif +typedef struct { char x; $1 y; } opal__type_alignof_; +], + [AC_MSG_WARN([*** Problem running configure test!]) + AC_MSG_WARN([*** See config.log for details.]) + AC_MSG_ERROR([*** Cannot continue.])])])]) + +AC_DEFINE_UNQUOTED([$2], [$AS_TR_SH([opal_cv_c_align_$1])], [Alignment of type $1]) +eval "$2=$AS_TR_SH([opal_cv_c_align_$1])" + +rm -rf conftest* ]) dnl diff --git a/config/c_weak_symbols.m4 b/config/c_weak_symbols.m4 new file mode 100644 index 00000000..387d0eea --- /dev/null +++ b/config/c_weak_symbols.m4 @@ -0,0 +1,134 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2014 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# _OPAL_C_WEAK_SYMBOLS(action_if_found, [action_if_not_found]) +# ------------------------------------------------------------ +AC_DEFUN([_OPAL_C_WEAK_SYMBOLS],[ + # need two files because icc will incorrectly not create the + # symbols if they are not used in the object file in which they + # are defined. Blah! + # To get to compile with icc, have them in a separate header. + cat > conftest_weak.h < conftest_weak.c < conftest.c < conftest_weak.h < conftest_weak.c < conftest.c < \$all, + "brief!" => \$brief, + "full-path!" => \$print_full_obj_path, + "objext=s" => \$objext, + "top_builddir=s" => \$top_builddir, + "top_srcdir=s" => \$top_srcdir, +) || usage(); + +if (!$top_builddir or !$top_srcdir) { + usage(); +} + +if (0 != system("command -v nm >/dev/null 2>&1")) { + print STDERR "NOTE: nm not found, skipping common symbol check\n"; + # Makefile usage should prefix this command with "-" to ignore this exit status + exit 1; +} + +# load the common symbol whitelist from files scattered around the codebase +# +# It would be better to load these into some sort of tree and then have those +# whitelists only apply to objects that are found in the same directory or +# subdirectories. That way a whitelisted symbol in one component doesn't +# "shadow" a symbol that should not be whitelisted in another component. If we +# find this is actually a problem in practice then we can write a v2 update. +my @wl_files = `find '${top_srcdir}' -name 'common_sym_whitelist.txt'`; +foreach my $wl_file (@wl_files) { + chomp $wl_file; + my @lines = `cat $wl_file`; + foreach my $line (@lines) { + chomp $line; + next if ($line =~ /^\s*#/); # skip comments + next if ($line =~ /^\s*$/); # skip blank lines + push @sym_whitelist, $line; + } +} + +my $n = 0; +open(FIND, '-|', "find ${top_builddir} -name '*.${objext}'"); +OBJECT: while (my $obj_line = ) { + my $obj = $obj_line; + chomp $obj; + + # This pattern may not be 100% robust for all implementations of nm. If + # that turns out to be the case, we can try switching to "nm -P", which is + # supposed to activate the "portable" (yet ugly) format. It's also unclear + # at this point how common support for "nm -P" is. + open(NM, '-|', "nm '${obj}' 2>/dev/null | egrep '\\s[cC]\\s'"); + SYMBOL: while (my $sym_line = ) { + if (!$all and is_whitelisted($sym_line)) { + next SYMBOL; + } + + if ($n == 0) { + print STDERR "WARNING! Common symbols found:\n"; + } + if ($brief and $n == $MAX_BRIEF) { + print STDERR "[...]\n"; + print STDERR "skipping remaining symbols. To see all symbols, run:\n"; + print STDERR " " . join(" ", ($0, grep {!/--brief/} @orig_argv)) . "\n"; + last OBJECT; + } + if ($print_full_obj_path) { + print STDERR "$obj: $sym_line"; + } else { + my $obj_basename = basename($obj); + printf STDERR "%25s: %s", $obj_basename, $sym_line; + } + ++$n; + } + close(NM); +} +close(FIND); + +if ($n > 0) { + exit 1; +} else { + exit 0; +} + +sub is_whitelisted { + my $line = shift; + + foreach my $wl_sym (@sym_whitelist) { + if ($line =~ m/\b_?\Q$wl_sym\E\b/) { + return 1; + } + } + + # Look for symbol names ending in one or more underscores and assume they + # are "Fortran-shaped". This won't match the hex output from most nm's and + # shouldn't match the single characters that indicate symbol type. + if ($line =~ m/\b_?[A-Za-z_]+[A-Za-z0-9_]*_+\b/) { + return 1; + } + + return 0; +} diff --git a/config/ltmain_nag_pthread.diff b/config/ltmain_nag_pthread.diff new file mode 100644 index 00000000..87c27810 --- /dev/null +++ b/config/ltmain_nag_pthread.diff @@ -0,0 +1,18 @@ +--- config/ltmain.sh ++++ config/ltmain.sh +@@ -6417,8 +6417,14 @@ + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" ++ # and "-pthread" to "-Wl,-pthread" if NAG compiler + if test -n "$inherited_linker_flags"; then +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ case "$CC" in ++ nagfor*) ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;; ++ *) ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;; ++ esac + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; diff --git a/config/ltmain_pgi_tp.diff b/config/ltmain_pgi_tp.diff new file mode 100644 index 00000000..ff0fc36d --- /dev/null +++ b/config/ltmain_pgi_tp.diff @@ -0,0 +1,11 @@ +--- config/ltmain.sh ++++ config/ltmain.sh +@@ -4765,7 +4765,7 @@ + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ +- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp|-tp=*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" diff --git a/config/ompi_check_libfca.m4 b/config/ompi_check_libfca.m4 new file mode 100644 index 00000000..56057391 --- /dev/null +++ b/config/ompi_check_libfca.m4 @@ -0,0 +1,70 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2011 Mellanox Technologies. All rights reserved. +dnl Copyright (c) 2013 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_FCA(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if fca support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_FCA],[ + OPAL_VAR_SCOPE_PUSH([ompi_check_fca_libs ompi_check_fca_happy CPPFLAGS_save LDFLAGS_save LIBS_save]) + + AC_ARG_WITH([fca], + [AC_HELP_STRING([--with-fca(=DIR)], + [Build fca (Mellanox Fabric Collective Accelerator) support, optionally adding + DIR/include and DIR/lib or DIR/lib64 to the search path for headers and libraries])]) + + AS_IF([test "$with_fca" != "no"], + [ompi_check_fca_libs=fca + AS_IF([test ! -z "$with_fca" && test "$with_fca" != "yes"], + [ompi_check_fca_dir=$with_fca + AC_SUBST([coll_fca_HOME], "$ompi_check_fca_dir")], + [AC_SUBST([coll_fca_HOME], "/")]) + + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS + + + OPAL_LOG_MSG([$1_CPPFLAGS : $$1_CPPFLAGS], 1) + OPAL_LOG_MSG([$1_LDFLAGS : $$1_LDFLAGS], 1) + OPAL_LOG_MSG([$1_LIBS : $$1_LIBS], 1) + + OPAL_CHECK_PACKAGE([$1], + [fca/fca_api.h], + [$ompi_check_fca_libs], + [fca_get_version], + [], + [$ompi_check_fca_dir], + [], + [ompi_check_fca_happy="yes"], + [ompi_check_fca_happy="no"]) + + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save], + [ompi_check_fca_happy="no"]) + + AS_IF([test "$ompi_check_fca_happy" = "yes" && test "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([fca driver does not currently support progress threads. Disabling FCA.]) + ompi_check_fca_happy="no"]) + + AS_IF([test "$ompi_check_fca_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_fca" && test "$with_fca" != "no"], + [AC_MSG_ERROR([FCA support requested but not found. Aborting])]) + $3]) + + OPAL_VAR_SCOPE_POP +]) + diff --git a/config/ompi_check_libhcoll.m4 b/config/ompi_check_libhcoll.m4 new file mode 100644 index 00000000..33750117 --- /dev/null +++ b/config/ompi_check_libhcoll.m4 @@ -0,0 +1,66 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2011 Mellanox Technologies. All rights reserved. +dnl Copyright (c) 2013 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_HCOLL(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if hcoll support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_HCOLL],[ + OPAL_VAR_SCOPE_PUSH([ompi_check_hcoll_dir ompi_check_hcoll_libs ompi_check_hcoll_happy CPPFLAGS_save LDFLAGS_save LIBS_save]) + + AC_ARG_WITH([hcoll], + [AC_HELP_STRING([--with-hcoll(=DIR)], + [Build hcoll (Mellanox Hierarchical Collectives) support, optionally adding + DIR/include and DIR/lib or DIR/lib64 to the search path for headers and libraries])]) + + AS_IF([test "$with_hcoll" != "no"], + [ompi_check_hcoll_libs=hcoll + AS_IF([test ! -z "$with_hcoll" && test "$with_hcoll" != "yes"], + [ompi_check_hcoll_dir=$with_hcoll]) + + CPPFLAGS_save=$CPPFLAGS + LDFLAGS_save=$LDFLAGS + LIBS_save=$LIBS + + OPAL_LOG_MSG([$1_CPPFLAGS : $$1_CPPFLAGS], 1) + OPAL_LOG_MSG([$1_LDFLAGS : $$1_LDFLAGS], 1) + OPAL_LOG_MSG([$1_LIBS : $$1_LIBS], 1) + + OPAL_CHECK_PACKAGE([$1], + [hcoll/api/hcoll_api.h], + [$ompi_check_hcoll_libs], + [hcoll_get_version], + [], + [$ompi_check_hcoll_dir], + [], + [ompi_check_hcoll_happy="yes"], + [ompi_check_hcoll_happy="no"]) + + CPPFLAGS=$CPPFLAGS_save + LDFLAGS=$LDFLAGS_save + LIBS=$LIBS_save], + [ompi_check_hcoll_happy=no]) + + AS_IF([test "$ompi_check_hcoll_happy" = "yes" && test "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([hcoll driver does not currently support progress threads. Disabling HCOLL.]) + ompi_check_hcoll_happy="no"]) + + AS_IF([test "$ompi_check_hcoll_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_hcoll" && test "$with_hcoll" != "no"], + [AC_MSG_ERROR([HCOLL support requested but not found. Aborting])]) + $3]) + + OPAL_VAR_SCOPE_POP +]) diff --git a/config/ompi_check_lustre.m4 b/config/ompi_check_lustre.m4 new file mode 100644 index 00000000..d27fe3bf --- /dev/null +++ b/config/ompi_check_lustre.m4 @@ -0,0 +1,93 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2008-2012 University of Houston. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_LUSTRE(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if LUSTRE support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_LUSTRE],[ + + check_lustre_CPPFLAGS= + check_lustre_LDFLAGS= + check_lustre_LIBS= + + check_lustre_save_LIBS="$LIBS" + check_lustre_save_LDFLAGS="$LDFLAGS" + check_lustre_save_CPPFLAGS="$CPPFLAGS" + + check_lustre_configuration="none" + ompi_check_lustre_happy="yes" + + + # Get some configuration information + AC_ARG_WITH([lustre], + [AC_HELP_STRING([--with-lustre(=DIR)], + [Build Lustre support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([lustre], [$with_lustre], [include/lustre/liblustreapi.h]) + + AS_IF([test -z "$with_lustre"], + [ompi_check_lustre_dir="/usr"], + [ompi_check_lustre_dir="$with_lustre"]) + + if test -e "$ompi_check_lustre_dir/lib64" ; then + ompi_check_lustre_libdir="$ompi_check_lustre_dir/lib64" + else + ompi_check_lustre_libdir="$ompi_check_lustre_dir/lib" + fi + + # Add correct -I and -L flags + OPAL_CHECK_PACKAGE([$1], [lustre/liblustreapi.h], [lustreapi], [llapi_file_create], [], + [$ompi_check_lustre_dir], [$ompi_check_lustre_libdir], [ompi_check_lustre_happy="yes"], + [ompi_check_lustre_happy="no"]) + + AC_MSG_CHECKING([for required lustre data structures]) + cat > conftest.c <]], + [[ +#ifndef MXM_VERSION +#error "MXM Version is less than 2.1, please upgrade" +#endif +# +#if MXM_API < MXM_VERSION(2,1) +#error "MXM Version is less than 2.1, please upgrade" +#endif + ]])], + [ompi_mxm_version_ok="yes"], + [ompi_mxm_version_ok="no"]) + + AC_MSG_RESULT([$ompi_mxm_version_ok]) + CFLAGS=$old_CFLAGS + + AS_IF([test "$ompi_mxm_version_ok" = "no"], [ompi_check_mxm_happy="no"]) + + OPAL_SUMMARY_ADD([[Transports]],[[Mellanox MXM]],[$1],[$ompi_check_mxm_happy]) + fi + + AS_IF([test "$ompi_check_mxm_happy" = "yes"], + [$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_mxm_LDFLAGS" + $1_LIBS="[$]$1_LIBS $ompi_check_mxm_LIBS" + $1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_mxm_CPPFLAGS" + $2], + [AS_IF([test ! -z "$with_mxm" && test "$with_mxm" != "no"], + [AC_MSG_ERROR([MXM support requested but not found. Aborting])]) + $3]) +]) + diff --git a/config/ompi_check_plfs.m4 b/config/ompi_check_plfs.m4 new file mode 100644 index 00000000..71eff914 --- /dev/null +++ b/config/ompi_check_plfs.m4 @@ -0,0 +1,114 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2008-2012 University of Houston. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_PLFS(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if PLFS support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_PLFS],[ + + check_plfs_CPPFLAGS= + check_plfs_LDFLAGS= + check_plfs_LIBS= + + check_plfs_save_LIBS="$LIBS" + check_plfs_save_LDFLAGS="$LDFLAGS" + check_plfs_save_CPPFLAGS="$CPPFLAGS" + + check_plfs_configuration="none" + ompi_check_plfs_happy="yes" + + + # Get some configuration information + AC_ARG_WITH([plfs], + [AC_HELP_STRING([--with-plfs(=DIR)], + [Build Plfs support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([plfs], [$with_plfs], [include/plfs.h]) + + AC_ARG_WITH([plfs-libs], + [AC_HELP_STRING([--with-plfs-libs=LIBS], + [Libraries to link with for plfs])]) + + temp_with_plfs="$with_plfs" + AS_IF([test -z "$with_plfs"], + [with_plfs="/usr/local"]) + + temp_with_plfs_libs="$with_plfs_libs" + AS_IF([test -z "$with_plfs_libs"], + [with_plfs_libs="plfs pthread"]) + + # Add correct -I and -L flags + AS_IF([test -d "$with_plfs/include"], + [check_plfs_CPPFLAGS="-I$with_plfs/include" + $1_CPPFLAGS="$check_plfs_CPPFLAGS" + CPPFLAGS="$CPPFLAGS $check_plfs_CPPFLAGS"], + [ompi_check_plfs_happy="no"]) + + AS_IF([test "$ompi_check_plfs_happy" = "yes"], + [AS_IF([test -d "$with_plfs/lib"], + [check_plfs_LDFLAGS="-L$with_plfs/lib" + $1_LDFLAGS="$check_plfs_LDFLAGS" + LDFLAGS="$LDFLAGS $check_plfs_LDFLAGS"], + [ompi_check_plfs_happy="no"]) + ],[]) + + # Try to find all the plfs libraries + AS_IF([test "$ompi_check_plfs_happy" = "yes"], + [ AS_IF([test -n "$with_plfs_libs"] + [for lib in $with_plfs_libs ; do + check_plfs_LIBS="$check_plfs_LIBS -l$lib" + done]) + + $1_LIBS="$check_plfs_LIBS" + LIBS="$LIBS $check_plfs_LIBS" + + # check for plfs + AC_CHECK_HEADERS([plfs.h], + [AC_MSG_CHECKING([if possible to link PLFS]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[is_plfs_path(NULL);]])], + [AC_MSG_RESULT([yes]) + ompi_check_plfs_happy="yes"], + [AC_MSG_RESULT([no]) + ompi_check_plfs_happy="no"])], + [ompi_check_plfs_happy="no"]) + ]) + + + LDFLAGS="$check_plfs_save_LDFLAGS" + CPPFLAGS="$check_plfs_save_CPPFLAGS" + LIBS="$check_plfs_save_LIBS" + AS_IF([test "$ompi_check_plfs_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_plfs" && test "$with_plfs" != "no"], + [echo PLFS support not found]) + $3]) + + with_plfs="$temp_with_plfs" + with_plfs_libs="$temp_with_plfs_libs" + +]) + diff --git a/config/ompi_check_psm.m4 b/config/ompi_check_psm.m4 new file mode 100644 index 00000000..bcde24ac --- /dev/null +++ b/config/ompi_check_psm.m4 @@ -0,0 +1,92 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006 QLogic Corp. All rights reserved. +dnl Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2016 Intel Corporation. All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_PSM(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if PSM support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_PSM],[ + if test -z "$ompi_check_psm_happy" ; then + AC_ARG_WITH([psm], + [AC_HELP_STRING([--with-psm(=DIR)], + [Build PSM (Qlogic InfiniPath) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([psm], [$with_psm], [include/psm.h]) + AC_ARG_WITH([psm-libdir], + [AC_HELP_STRING([--with-psm-libdir=DIR], + [Search for PSM (QLogic InfiniPath PSM) libraries in DIR])]) + OPAL_CHECK_WITHDIR([psm-libdir], [$with_psm_libdir], [libpsm_infinipath.*]) + + ompi_check_psm_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_psm_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_psm_$1_save_LIBS="$LIBS" + + AS_IF([test "$with_psm" != "no"], + [AS_IF([test ! -z "$with_psm" && test "$with_psm" != "yes"], + [ompi_check_psm_dir="$with_psm"]) + AS_IF([test ! -z "$with_psm_libdir" && test "$with_psm_libdir" != "yes"], + [ompi_check_psm_libdir="$with_psm_libdir"]) + + OPAL_CHECK_PACKAGE([ompi_check_psm], + [psm.h], + [psm_infinipath], + [psm_finalize], + [], + [$ompi_check_psm_dir], + [$ompi_check_psm_libdir], + [ompi_check_psm_happy="yes"], + [ompi_check_psm_happy="no"])], + [ompi_check_psm_happy="no"]) + + CPPFLAGS="$ompi_check_psm_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_psm_$1_save_LDFLAGS" + LIBS="$ompi_check_psm_$1_save_LIBS" + + AS_IF([test "$ompi_check_psm_happy" = "yes" && test "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([PSM driver does not currently support progress threads. Disabling BTL.]) + ompi_check_psm_happy="no"]) + + AS_IF([test "$ompi_check_psm_happy" = "yes"], + [AC_CHECK_HEADERS( + glob.h, + [], + [AC_MSG_WARN([glob.h not found. Can not build component.]) + ompi_check_psm_happy="no"])]) + + OPAL_SUMMARY_ADD([[Transports]],[[Intel TrueScale (PSM)]],[$1],[$ompi_check_psm_happy]) + fi + + AS_IF([test "$ompi_check_psm_happy" = "yes"], + [$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_psm_LDFLAGS" + $1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_psm_CPPFLAGS" + $1_LIBS="[$]$1_LIBS $ompi_check_psm_LIBS" + $2], + [AS_IF([test ! -z "$with_psm" && test "$with_psm" != "no"], + [AC_MSG_ERROR([PSM support requested but not found. Aborting])]) + $3]) +]) + diff --git a/config/ompi_check_psm2.m4 b/config/ompi_check_psm2.m4 new file mode 100644 index 00000000..58a7dd0c --- /dev/null +++ b/config/ompi_check_psm2.m4 @@ -0,0 +1,90 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2006 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006 QLogic Corp. All rights reserved. +# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2016 Intel Corporation. All rights reserved. +# Copyright (c) 2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2016 Los Alamos National Security, LLC. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OMPI_CHECK_PSM2(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if PSM2 support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_PSM2],[ + if test -z "$ompi_check_psm2_happy" ; then + AC_ARG_WITH([psm2], + [AC_HELP_STRING([--with-psm2(=DIR)], + [Build PSM2 (Intel PSM2) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([psm2], [$with_psm2], [include/psm2.h]) + AC_ARG_WITH([psm2-libdir], + [AC_HELP_STRING([--with-psm2-libdir=DIR], + [Search for PSM (Intel PSM2) libraries in DIR])]) + OPAL_CHECK_WITHDIR([psm2-libdir], [$with_psm2_libdir], [libpsm2.*]) + + ompi_check_psm2_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_psm2_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_psm2_$1_save_LIBS="$LIBS" + + AS_IF([test "$with_psm2" != "no"], + [AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "yes"], + [ompi_check_psm2_dir="$with_psm2"]) + AS_IF([test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"], + [ompi_check_psm2_libdir="$with_psm2_libdir"]) + + OPAL_CHECK_PACKAGE([ompi_check_psm2], + [psm2.h], + [psm2], + [psm2_mq_irecv2], + [], + [$ompi_check_psm2_dir], + [$ompi_check_psm2_libdir], + [ompi_check_psm2_happy="yes"], + [ompi_check_psm2_happy="no"])], + [ompi_check_psm2_happy="no"]) + + CPPFLAGS="$ompi_check_psm2_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_psm2_$1_save_LDFLAGS" + LIBS="$ompi_check_psm2_$1_save_LIBS" + + AS_IF([test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([PSM2 driver does not currently support progress threads. Disabling MTL.]) + ompi_check_psm2_happy="no"]) + + AS_IF([test "$ompi_check_psm2_happy" = "yes"], + [AC_CHECK_HEADERS( + glob.h, + [], + [AC_MSG_WARN([glob.h not found. Can not build component.]) + ompi_check_psm2_happy="no"])]) + + OPAL_SUMMARY_ADD([[Transports]],[[Intel Omnipath (PSM2)]],[$1],[$ompi_check_psm2_happy]) + fi + + AS_IF([test "$ompi_check_psm2_happy" = "yes"], + [$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_psm2_LDFLAGS" + $1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_psm2_CPPFLAGS" + $1_LIBS="[$]$1_LIBS $ompi_check_psm2_LIBS" + $2], + [AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "no"], + [AC_MSG_ERROR([PSM2 support requested but not found. Aborting])]) + $3]) +]) diff --git a/config/ompi_check_pvfs2.m4 b/config/ompi_check_pvfs2.m4 new file mode 100644 index 00000000..07176f66 --- /dev/null +++ b/config/ompi_check_pvfs2.m4 @@ -0,0 +1,68 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2008-2016 University of Houston. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_PVFS2(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if PVFS2 support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_PVFS2],[ + + check_pvfs2_CPPFLAGS= + check_pvfs2_LDFLAGS= + check_pvfs2_LIBS= + + check_pvfs2_configuration="none" + ompi_check_pvfs2_happy="yes" + + + # Get some configuration information + AC_ARG_WITH([pvfs2], + [AC_HELP_STRING([--with-pvfs2(=DIR)], + [Build Pvfs2 support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([pvfs2], [$with_pvfs2], [include/pvfs2.h]) + + AS_IF([test -z "$with_pvfs2"], + [ompi_check_pvfs2_dir="/usr/local"], + [ompi_check_pvfs2_dir=$with_pvfs2]) + + if test -e "$ompi_check_pvfs2_dir/lib64" ; then + ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib64" + else + ompi_check_pvfs2_libdir="$ompi_check_pvfs2_dir/lib" + fi + + # Add correct -I and -L flags + OPAL_CHECK_PACKAGE([$1], [pvfs2.h], [pvfs2], [PVFS_util_resolve], [], + [$ompi_check_pvfs2_dir], [$ompi_check_pvfs2_libdir], [ompi_check_pvfs2_happy="yes"], + [ompi_check_pvfs2_happy="no"]) + + + AS_IF([test "$ompi_check_pvfs2_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_pvfs2" && test "$with_pvfs2" != "no"], + [echo PVFS2 support not found]) + $3]) + +]) + diff --git a/config/ompi_check_ucx.m4 b/config/ompi_check_ucx.m4 new file mode 100644 index 00000000..55aede6c --- /dev/null +++ b/config/ompi_check_ucx.m4 @@ -0,0 +1,93 @@ +# -*- shell-script -*- +# +# Copyright (C) 2015 Mellanox Technologies Ltd. ALL RIGHTS RESERVED. +# Copyright (c) 2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2016 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OMPI_CHECK_UCX(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if UCX support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_UCX],[ + if test -z "$ompi_check_ucx_happy" ; then + AC_ARG_WITH([ucx], + [AC_HELP_STRING([--with-ucx(=DIR)], + [Build with Unified Communication X library support])]) + OPAL_CHECK_WITHDIR([ucx], [$with_ucx], [include/ucp/api/ucp.h]) + AC_ARG_WITH([ucx-libdir], + [AC_HELP_STRING([--with-ucx-libdir=DIR], + [Search for Unified Communication X libraries in DIR])]) + OPAL_CHECK_WITHDIR([ucx-libdir], [$with_ucx_libdir], [libucp.*]) + + ompi_check_ucx_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_ucx_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_ucx_$1_save_LIBS="$LIBS" + + AS_IF([test "$with_ucx" != "no"], + [AS_IF([test ! -z "$with_ucx" && test "$with_ucx" != "yes"], + [ + ompi_check_ucx_dir="$with_ucx" + ompi_check_ucx_libdir="$with_ucx/lib" + ]) + AS_IF([test ! -z "$with_ucx_libdir" && test "$with_ucx_libdir" != "yes"], + [ompi_check_ucx_libdir="$with_ucx_libdir"]) + + ompi_check_ucx_extra_libs="-L$ompi_check_ucx_libdir" + + OPAL_CHECK_PACKAGE([ompi_check_ucx], + [ucp/api/ucp.h], + [ucp], + [ucp_cleanup], + [$ompi_check_ucx_extra_libs], + [$ompi_check_ucx_dir], + [$ompi_check_ucx_libdir], + [ompi_check_ucx_happy="yes"], + [ompi_check_ucx_happy="no"])], + [ompi_check_ucx_happy="no"]) + + + + CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS" + LIBS="$ompi_check_ucx_$1_save_LIBS" + + AC_MSG_CHECKING(for UCX version compatibility) + AC_REQUIRE_CPP + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I$ompi_check_ucx_dir/include" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ + ]])], + [ompi_ucx_version_ok="yes"], + [ompi_ucx_version_ok="no"]) + + AC_MSG_RESULT([$ompi_ucx_version_ok]) + CPPFLAGS=$old_CPPFLAGS + + AS_IF([test "$ompi_ucx_version_ok" = "no"], [ompi_check_ucx_happy="no"]) + + OPAL_SUMMARY_ADD([[Transports]],[[Open UCX]],[$1],[$ompi_check_ucx_happy]) + fi + + + AS_IF([test "$ompi_check_ucx_happy" = "yes"], + [$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_ucx_CPPFLAGS" + $1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_ucx_LDFLAGS" + $1_LIBS="[$]$1_LIBS $ompi_check_ucx_LIBS" + $2], + [AS_IF([test ! -z "$with_ucx" && test "$with_ucx" != "no"], + [AC_MSG_ERROR([UCX support requested but not found. Aborting])]) + $3]) +]) + diff --git a/config/ompi_check_udapl.m4 b/config/ompi_check_udapl.m4 new file mode 100644 index 00000000..d45a709a --- /dev/null +++ b/config/ompi_check_udapl.m4 @@ -0,0 +1,120 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007-2009 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_CHECK_UDAPL(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if uDAPL support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OMPI_CHECK_UDAPL],[ + AC_ARG_WITH([udapl], + [AC_HELP_STRING([--with-udapl(=DIR)], + [Build uDAPL support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([udapl], [$with_udapl], [include/dat/udat.h]) + AC_ARG_WITH([udapl-libdir], + [AC_HELP_STRING([--with-udapl-libdir=DIR], + [Search for uDAPL libraries in DIR])]) + OPAL_CHECK_WITHDIR([udapl-libdir], [$with_udapl_libdir], [libdat.*]) + + # Special case for OFED/Linux: the default /etc/dat.conf that + # ships with OFED is broken in that it includes DAT providers that + # are not guarnateed to work (e.g., it includes providers for ib0, + # ib1, ib2, ib3, and bond0). Usually, a sysadmin will need to + # edit this file to configure it for the specific environment in + # which it will be used. Hence, if you run the udapl BTL on + # Linux/OFED, you'll get a bunch of warning messages about the + # providers that don't work. However, on Linux/OFED, you don't + # really want to use udapl anyway; you likely really want to use + # the openib BTL (i.e., native verbs, not udapl). + + # So after exploring many different scenarios, the least evil + # solution seemed to be to disable building the udapl BTL on + # Linux/OFED *unless the user specifically asks for it.* To be + # specific: on Linux/OFED, if you do not specify + # --with-udapl(=DIR), the udapl BTL will not be built. + AS_IF([test -z "$with_udapl"], + [case $host in + *linux*) + AC_MSG_WARN([On Linux and --with-udapl was not specified]) + AC_MSG_WARN([Not building the udapl BTL]) + with_udapl=no + ;; + esac]) + + AS_IF([test ! -z "$with_udapl" && test "$with_udapl" != "yes"], + [ompi_check_udapl_dir="$with_udapl"]) + AS_IF([test ! -z "$with_udapl_libdir" && test "$with_udapl_libdir" != "yes"], + [ompi_check_udapl_libdir="$with_udapl_libdir"]) + AS_IF([test "$with_udapl" = "no"], + [ompi_check_udapl_happy="no"], + [ompi_check_udapl_happy="yes"]) + +dnl Do not use ompi_check_package directly, because then we have +dnl to test for the header file twice, and caching is disabled +dnl for all ompi_check_package checks. Instead, do what +dnl ompi_check_package does, but only do the header check once. +dnl Still do the lib check twice, the second time if it turns +dnl out we need -ldapl to link (looks like udapl over GM). + + ompi_check_package_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_package_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_package_$1_save_LIBS="$LIBS" + + ompi_check_package_$1_orig_CPPFLAGS="$$1_CPPFLAGS" + ompi_check_package_$1_orig_LDFLAGS="$$1_LDFLAGS" + ompi_check_package_$1_orig_LIBS="$$1_LIBS" + + AS_IF([test "$ompi_check_udapl_happy" = "yes"], + [_OPAL_CHECK_PACKAGE_HEADER([$1], + [dat/udat.h], + [$ompi_check_udapl_dir], + [ompi_check_udapl_happy="yes"], + [ompi_check_udapl_happy="no"])]) + + AS_IF([test "$ompi_check_udapl_happy" = "yes"], + [_OPAL_CHECK_PACKAGE_LIB([$1], + [dat], + [dat_registry_list_providers], + [], + [$ompi_check_udapl_dir], + [$ompi_check_udapl_libdir], + [ompi_check_udapl_happy="yes"], + [_OPAL_CHECK_PACKAGE_LIB([$1], + [dat], + [dat_registry_list_providers], + [-ldapl], + [$ompi_check_udapl_dir], + [$ompi_check_udapl_libdir], + [ompi_check_udapl_happy="yes"], + [ompi_check_udapl_happy="no"])])]) + + CPPFLAGS="$ompi_check_package_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_package_$1_save_LDFLAGS" + LIBS="$ompi_check_package_$1_save_LIBS" + + AS_IF([test "$ompi_check_udapl_happy" = "yes"], + [$2], + [AS_IF([test ! -z "$with_udapl" && test "$with_udapl" != "no"], + [AC_MSG_ERROR([uDAPL support requested but not found. Aborting])]) + $3]) +]) + diff --git a/config/ompi_config_files.m4 b/config/ompi_config_files.m4 new file mode 100644 index 00000000..b20ca134 --- /dev/null +++ b/config/ompi_config_files.m4 @@ -0,0 +1,52 @@ +# -*- shell-script -*- +# +# Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AC_DEFUN([OMPI_CONFIG_FILES],[ + AC_CONFIG_FILES([ + ompi/Makefile + ompi/etc/Makefile + ompi/include/Makefile + ompi/include/mpif.h + ompi/include/mpif-config.h + + ompi/datatype/Makefile + ompi/debuggers/Makefile + + ompi/mpi/c/Makefile + ompi/mpi/c/profile/Makefile + ompi/mpi/cxx/Makefile + ompi/mpi/fortran/base/Makefile + ompi/mpi/fortran/mpif-h/Makefile + ompi/mpi/fortran/mpif-h/profile/Makefile + ompi/mpi/fortran/use-mpi-tkr/Makefile + ompi/mpi/fortran/use-mpi-tkr/fortran_sizes.h + ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh + ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile + ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h + ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-file-interfaces.h + ompi/mpi/fortran/use-mpi-f08/Makefile + ompi/mpi/fortran/use-mpi-f08-desc/Makefile + ompi/mpi/fortran/mpiext/Makefile + ompi/mpi/tool/Makefile + ompi/mpi/tool/profile/Makefile + + ompi/tools/ompi_info/Makefile + ompi/tools/wrappers/Makefile + ompi/tools/wrappers/mpicc-wrapper-data.txt + ompi/tools/wrappers/mpic++-wrapper-data.txt + ompi/tools/wrappers/mpifort-wrapper-data.txt + ompi/tools/wrappers/ompi.pc + ompi/tools/wrappers/ompi-c.pc + ompi/tools/wrappers/ompi-cxx.pc + ompi/tools/wrappers/ompi-fort.pc + ompi/tools/wrappers/mpijavac.pl + ompi/tools/mpisync/Makefile + ]) +]) diff --git a/config/ompi_configure_options.m4 b/config/ompi_configure_options.m4 new file mode 100644 index 00000000..3301df03 --- /dev/null +++ b/config/ompi_configure_options.m4 @@ -0,0 +1,271 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009 IBM Corporation. All rights reserved. +dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2013 Intel, Inc. All rights reserved. +dnl Copyright (c) 2015-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_CONFIGURE_OPTIONS],[ +opal_show_subtitle "OMPI Configuration options" + +# +# Disable MPI layer? +# +AC_ARG_ENABLE([mpi], + [AC_HELP_STRING([--disable-mpi], + [Disable building the MPI layer (default:enabled)])]) + +# +# Do we want to enable MPI interface warnings (e.g. deprecated +# functionality and others)? +# +# This was disabled by default in v1.5, but will be enabled by default +# in 1.7 and beyond. +# + +AC_MSG_CHECKING([if want compile-time warnings inside of mpi.h]) +AC_ARG_ENABLE(mpi-interface-warning, + AC_HELP_STRING([--enable-mpi-interface-warning], + [enable compile-time warnings when deprecated MPI functions are used (default: enabled)])) +if test "$enable_mpi_interface_warning" != "no"; then + AC_MSG_RESULT([yes]) + OMPI_WANT_MPI_INTERFACE_WARNING=1 +else + AC_MSG_RESULT([no]) + OMPI_WANT_MPI_INTERFACE_WARNING=0 +fi +AC_DEFINE_UNQUOTED([OMPI_WANT_MPI_INTERFACE_WARNING], [$OMPI_WANT_MPI_INTERFACE_WARNING], + [Enable warnings when using deprecated MPI functions]) + +# +# Sparse Groups +# + +AC_MSG_CHECKING([if want sparse process groups]) +AC_ARG_ENABLE(sparse-groups, + AC_HELP_STRING([--enable-sparse-groups], + [enable sparse process groups (default: not enabled)])) +if test "$enable_sparse_groups" = "yes"; then + AC_MSG_RESULT([yes]) + GROUP_SPARSE=1 +else + AC_MSG_RESULT([no]) + GROUP_SPARSE=0 +fi +AC_DEFINE_UNQUOTED([OMPI_GROUP_SPARSE],$GROUP_SPARSE, + [Wether we want sparse process groups]) + + +# +# Do we want to enable peruse interface? +# + +AC_MSG_CHECKING([if want peruse support]) +AC_ARG_ENABLE(peruse, + AC_HELP_STRING([--enable-peruse], + [enable PERUSE interface (default: disabled)])) +if test "$enable_peruse" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_PERUSE=1 +else + AC_MSG_RESULT([no]) + WANT_PERUSE=0 +fi +AC_DEFINE_UNQUOTED([OMPI_WANT_PERUSE], + [$WANT_PERUSE], + [if the peruse interface should be enabled]) +AM_CONDITIONAL(WANT_PERUSE, test "$WANT_PERUSE" = "1") + +# +# Fortran MPI bindings +# +AC_MSG_CHECKING([if want Fortran MPI bindings]) +AC_ARG_ENABLE(mpi-fortran, + AC_HELP_STRING([--enable-mpi-fortran], + [specify which Fortran MPI bindings to build: yes, none (or no), best-effort, mpifh (build only mpif.h support), usempi (build mpif.h and the mpi module), or usempif08 (or all, build mpifh, the mpi module, and the mpi_f08 module) (default: "yes" if Fortran compiler found)])) + +# These are the 4 monotonically-rising values indicating levels of +# Fortran bindings support. +OMPI_FORTRAN_NO_BINDINGS=0 +OMPI_FORTRAN_MPIFH_BINDINGS=1 +OMPI_FORTRAN_USEMPI_BINDINGS=2 +OMPI_FORTRAN_USEMPIF08_BINDINGS=3 + +# Set this variable to minimum the level of Fortran bindings support +# that is *required* (i.e., if we can't achieve this level, then +# configure should abort). +OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS +# Set this variable to the highest level of Fortran bindings support +# that should be attempted. This value will never be <= +# $OMPI_MIN_REQUIRED_FORTRAN_BINDINGS. +OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS + +case "x$enable_mpi_fortran" in + x|xbest-effort) + AC_MSG_RESULT([ (try)]) + OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS + OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + ;; + + xyes) + AC_MSG_RESULT([yes (default)]) + OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS + OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + ;; + + xall|xusempif08) + AC_MSG_RESULT([all (usempif08)]) + OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + ;; + + xno|xnone) + AC_MSG_RESULT([no (none)]) + OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS + OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS + ;; + + xmpifh) + AC_MSG_RESULT([yes (mpif.h)]) + OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS + OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS + ;; + + xusempi) + AC_MSG_RESULT([yes (mpif.h, mpi module)]) + OMPI_MIN_REQUIRED_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS + OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS + ;; + + *) + AC_MSG_RESULT([unknown: $binding]) + AC_MSG_WARN([--enable-mpi-fortran supports only one of the following values: yes, all, none, best-effort, mpifh, usempi, or usempif08]) + AC_MSG_ERROR([Cannot continue]) + ;; +esac + +# +# C++ +# + +AC_MSG_CHECKING([if want C++ bindings]) +AC_ARG_ENABLE(mpi-cxx, + AC_HELP_STRING([--enable-mpi-cxx], + [enable C++ MPI bindings (default: disabled)])) +if test "$enable_mpi_cxx" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_MPI_CXX_SUPPORT=1 +else + AC_MSG_RESULT([no]) + WANT_MPI_CXX_SUPPORT=0 +fi + +AC_MSG_CHECKING([if want MPI::SEEK_SET support]) +AC_ARG_ENABLE([mpi-cxx-seek], + [AC_HELP_STRING([--enable-mpi-cxx-seek], + [enable support for MPI::SEEK_SET, MPI::SEEK_END, and MPI::SEEK_POS in C++ bindings (default: enabled)])]) +if test "$enable_mpi_cxx_seek" != "no" ; then + AC_MSG_RESULT([yes]) + OMPI_WANT_MPI_CXX_SEEK=1 +else + AC_MSG_RESULT([no]) + OMPI_WANT_MPI_CXX_SEEK=0 +fi +AC_DEFINE_UNQUOTED([OMPI_WANT_MPI_CXX_SEEK], [$OMPI_WANT_MPI_CXX_SEEK], + [do we want to try to work around C++ bindings SEEK_* issue?]) + + +# +# Do we want to disable MPI parameter checking at run-time? +# + +AC_MSG_CHECKING([if want run-time MPI parameter checking]) +AC_ARG_WITH(mpi-param-check, + AC_HELP_STRING([--with-mpi-param-check(=VALUE)], + [behavior of MPI function parameter checking. Valid values are: always, never, runtime. If --with-mpi-param-check is specified with no VALUE argument, it is equivalent to a VALUE of "always"; --without-mpi-param-check is equivalent to "never" (default: runtime).])) +mpi_param_check=ompi_mpi_param_check +if test "$with_mpi_param_check" = "no" || \ + test "$with_mpi_param_check" = "never"; then + mpi_param_check=0 + ompi_param_check=0 + AC_MSG_RESULT([never]) +elif test "$with_mpi_param_check" = "yes" || \ + test "$with_mpi_param_check" = "always"; then + mpi_param_check=1 + ompi_param_check=1 + AC_MSG_RESULT([always]) +elif test "$with_mpi_param_check" = "runtime" || \ + test -z "$with_mpi_params_check"; then + ompi_param_check=1 + AC_MSG_RESULT([runtime]) +else + AC_MSG_RESULT([unknown]) + AC_MSG_WARN([*** Unrecognized --with-mpi-param-check value]) + AC_MSG_WARN([*** See "configure --help" output]) + AC_MSG_WARN([*** Defaulting to "runtime"]) +fi +AC_DEFINE_UNQUOTED(MPI_PARAM_CHECK, $mpi_param_check, + [Whether we want to check MPI parameters always, never, or decide at run-time]) +AC_DEFINE_UNQUOTED(OMPI_PARAM_CHECK, $ompi_param_check, + [Whether we want to check MPI parameters never or possible (an integer constant)]) + +# +# Do we want the prototype "use mpi_f08" implementation that uses +# Fortran descriptors? +# + +AC_MSG_CHECKING([which 'use mpi_f08' implementation to use]) +AC_ARG_ENABLE(mpi-f08-subarray-prototype, + AC_HELP_STRING([--enable-mpi-f08-subarray-prototype], + [Use the PROTOTYPE and SEVERLY FUNCTIONALITY-LIMITED Fortran 08 'use mpi_f08' implementation that supports subarrrays (via Fortran descriptors). This option will disable the normal 'use mpi_f08' implementation and *only* build the prototype implementation.])) +OMPI_BUILD_FORTRAN_F08_SUBARRAYS=0 +AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -lt $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [AC_MSG_RESULT([none (use mpi_f08 disabled)])], + [AS_IF([test "$enable_mpi_f08_subarray_prototype" = "yes"], + [OMPI_BUILD_FORTRAN_F08_SUBARRAYS=1 + AC_MSG_RESULT([extra crispy (subarray prototype)]) + AC_MSG_WARN([Sorry, the subarray prototype is no longer available]) + AC_MSG_WARN([Contact your favorite OMPI developer and ask for it to be re-enabled]) + AC_MSG_ERROR([Cannot continue])], + [AC_MSG_RESULT([regular (no subarray support)])]) + ]) +AC_DEFINE_UNQUOTED([OMPI_BUILD_FORTRAN_F08_SUBARRAYS], + [$OMPI_BUILD_FORTRAN_F08_SUBARRAYS], + [Whether we built the 'use mpi_f08' prototype subarray-based implementation or not (i.e., whether to build the use-mpi-f08-desc prototype or the regular use-mpi-f08 implementation)]) + +AC_ARG_ENABLE([mpi-io], + [AC_HELP_STRING([--disable-mpi-io], + [Disable built-in support for MPI-2 I/O, likely because + an externally-provided MPI I/O package will be used. + Default is to use the internal framework system that uses + the ompio component and a specially modified version of ROMIO + that fits inside the romio314 component])]) + +AC_ARG_ENABLE([io-ompio], + [AC_HELP_STRING([--disable-io-ompio], + [Disable the ompio MPI-IO component])]) + +])dnl + diff --git a/config/ompi_contrib.m4 b/config/ompi_contrib.m4 new file mode 100644 index 00000000..d2b19753 --- /dev/null +++ b/config/ompi_contrib.m4 @@ -0,0 +1,140 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007-2010 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +###################################################################### +# +# OMPI_CONTRIB +# +# configure the contributed software components. Currently fairly +# hard-wired, but someday should be much more like OMPI_MCA. See +# https://svn.open-mpi.org/trac/ompi/ticket/1162. +# +# USAGE: +# OMPI_CONTRIB() +# +###################################################################### +AC_DEFUN([OMPI_CONTRIB],[ + dnl for OPAL_CONFIGURE_USER env variable + AC_REQUIRE([OPAL_CONFIGURE_SETUP]) + + # Option to not build some of the contributed software packages + AC_ARG_ENABLE([contrib-no-build], + AC_HELP_STRING([--enable-contrib-no-build=LIST], + [Comma-separated list of contributed package names that will not be built. Possible values: ompi_mpicontrib_list. Example: "--enable-contrib-no-build=foo,bar" will disable building both the "foo" and "bar" contributed software packages (default: none -- i.e., build all possible contrib packages)])) + + # Parse the list to see what we should not build + opal_show_subtitle "Configuring contributed software packages" + AC_MSG_CHECKING([which contributed software packages should be disabled]) + if test "$enable_contrib_no_build" = "yes"; then + AC_MSG_RESULT([yes]) + AC_MSG_ERROR([*** The enable-contrib-no-build flag requires an explicit list +*** of packages to not build. For example, --enable-contrib-no-build=libompitrace]) + else + ifs_save="$IFS" + IFS="${IFS}$PATH_SEPARATOR," + msg= + for item in $enable_contrib_no_build; do + str="`echo DISABLE_contrib_${item}=1 | sed s/-/_/g`" + eval $str + msg="$item $msg" + done + IFS="$ifs_save" + fi + AC_MSG_RESULT([$msg]) + unset msg + + # List of contrib subdirs to traverse into + OMPI_CONTRIB_SUBDIRS= + OMPI_CONTRIB_DIST_SUBDIRS= + OMPI_MPI_CONTRIBS= + + # Cycle through each of the software packages and + # configure them if not disabled. + m4_foreach(software, [ompi_mpicontrib_list], + [_OMPI_CONTRIB_CONFIGURE(software)]) + + # Setup the top-level glue + AC_DEFINE_UNQUOTED([OMPI_MPI_CONTRIBS], ["$OMPI_MPI_CONTRIBS"], + [Contributed software packages built with Open MPI]) + AC_SUBST(OMPI_CONTRIB_SUBDIRS) + AC_SUBST(OMPI_CONTRIB_DIST_SUBDIRS) +])dnl + + +###################################################################### +# +# _OMPI_CONTRIB_SOFTWARE +# +# Setup a specific contributed software package. This is a subroutine +# because the work to setup each package is essentially the same. +# Currently assumes that there is a configure.m4 file in the +# contributed software directory. May someday be expanded to handle +# other things. +# +# USAGE: +# _OMPI_CONTRIB_SOFTARE([package_name]) +# +###################################################################### +AC_DEFUN([_OMPI_CONTRIB_CONFIGURE],[ + + opal_show_subsubsubtitle "$1 (m4 configuration macro)" + + # Put in a convenient enable/disable switch (it's a little more + # user friendly than + # --enable-contrib-no-build=, although each + # works just as well as the other). + AC_ARG_ENABLE([$1], + [AS_HELP_STRING([--disable-$1], + [disable support for contributed package $1 (default: enabled)])]) + AS_IF([test "x$enable_$1" = xno], [DISABLE_contrib_$1=yes]) + + OMPI_CONTRIB_HAPPY=0 + if test "$DISABLE_contrib_$1" = "" && test "$DISABLE_contrib_all" = ""; then + OMPI_contrib_$1_CONFIG([OMPI_CONTRIB_HAPPY=1], []) + AC_MSG_CHECKING([if contributed component $1 can compile]) + if test "$OMPI_CONTRIB_HAPPY" = "1"; then + OMPI_CONTRIB_SUBDIRS="$OMPI_CONTRIB_SUBDIRS contrib/$1" + OMPI_CONTRIB_DIST_SUBDIRS="$OMPI_CONTRIB_DIST_SUBDIRS contrib/$1" + if test "$OMPI_MPI_CONTRIBS" = ""; then + OMPI_MPI_CONTRIBS=$1 + else + OMPI_MPI_CONTRIBS="$1, $OMPI_MPI_CONTRIBS" + fi + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + + # If this component was requested via command line switch, then abort. + if test "x$enable_$1" = xyes ; then + AC_MSG_WARN([Contributed component "$1" failed to configure properly]) + AC_MSG_WARN([This component was requested via command line switch]) + AC_MSG_ERROR([Cannot continue]) + fi + fi + else + AC_MSG_NOTICE([disabled via command line switch]) + fi + AC_DEFINE_UNQUOTED(OMPI_ENABLE_CONTRIB_$1, [$OMPI_CONTRIB_HAPPY], + [Enable contributed software package $1]) + unset OMPI_CONTRIB_HAPPY +])dnl diff --git a/config/ompi_cxx_find_exception_flags.m4 b/config/ompi_cxx_find_exception_flags.m4 new file mode 100644 index 00000000..d6c45855 --- /dev/null +++ b/config/ompi_cxx_find_exception_flags.m4 @@ -0,0 +1,94 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_CXX_FIND_EXCEPTION_FLAGS],[ +# +# Arguments: none +# +# Dependencies: none +# +# Get the exception handling flags for the C++ compiler. Leaves +# CXXFLAGS undisturbed. +# Provides --with-exflags command line argument for configure as well. +# +# Sets OMPI_CXX_EXCEPTION_CXXFLAGS and OMPI_CXX_EXCEPTION_LDFLAGS as +# appropriate. +# Must call AC_SUBST manually +# + +# Command line flags + +AC_ARG_WITH(exflags, + AC_HELP_STRING([--with-exflags], + [Specify flags necessary to enable C++ exceptions]), + ompi_force_exflags="$withval") + +ompi_CXXFLAGS_SAVE="$CXXFLAGS" +AC_MSG_CHECKING([for compiler exception flags]) + +# See which flags to use + +if test "$ompi_force_exflags" != ""; then + + # If the user supplied flags, use those + + ompi_exflags="$ompi_force_exflags" +elif test "$GXX" = "yes"; then + + # g++ has changed their flags a few times. Sigh. + + CXXFLAGS="$CXXFLAGS -fexceptions" + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[try { int i = 0; } catch(...) { int j = 2; }]])], ompi_happy=1, ompi_happy=0) + + if test "$ompi_happy" = "1"; then + ompi_exflags="-fexceptions"; + else + CXXFLAGS="$CXXFLAGS_SAVE -fhandle-exceptions" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[try { int i = 0; } catch(...) { int j = 2; }]])], ompi_happy=1, ompi_happy=0) + if test "$ompi_happy" = "1"; then + ompi_exflags="-fhandle-exceptions"; + fi + fi + AC_LANG_RESTORE +elif test "`basename $CXX`" = "KCC"; then + + # KCC flags + + ompi_exflags="--exceptions" +fi +CXXFLAGS="$ompi_CXXFLAGS_SAVE" + +# Save the result + +OMPI_CXX_EXCEPTIONS_CXXFLAGS="$ompi_exflags" +OMPI_CXX_EXCEPTIONS_LDFLAGS="$ompi_exflags" +if test "$ompi_exflags" = ""; then + AC_MSG_RESULT([none necessary]) +else + AC_MSG_RESULT([$ompi_exflags]) +fi + +# Clean up + +unset ompi_force_exflags ompi_CXXFLAGS_SAVE ompi_exflags ompi_happy])dnl + diff --git a/config/ompi_cxx_find_template_parameters.m4 b/config/ompi_cxx_find_template_parameters.m4 new file mode 100644 index 00000000..bfa4677a --- /dev/null +++ b/config/ompi_cxx_find_template_parameters.m4 @@ -0,0 +1,44 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_CXX_FIND_TEMPLATE_PARAMETERS],[ +# +# Arguments: none +# +# Dependencies: None +# +# Get the C++ compiler template parameters. +# +# Adds to CXXFLAGS + +AC_MSG_CHECKING([for C++ compiler template parameters]) +if test "$BASECXX" = "KCC"; then + new_flags="--one_instantiation_per_object" + CXXFLAGS="$CXXFLAGS $new_flags" +else + new_flags="none needed" +fi +AC_MSG_RESULT([$new_flags]) + +# +# Clean up +# +unset new_flags +]) diff --git a/config/ompi_cxx_find_template_repository.m4 b/config/ompi_cxx_find_template_repository.m4 new file mode 100644 index 00000000..47d4cf2a --- /dev/null +++ b/config/ompi_cxx_find_template_repository.m4 @@ -0,0 +1,172 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_CXX_FIND_TEMPLATE_REPOSITORY],[ + AC_REQUIRE([AC_PROG_GREP]) + + # + # Arguments: None + # + # Dependencies: None + # + # See if the compiler makes template repository directories + # Warning: this is a really screwy example! -JMS + # + # Sets OMPI_CXX_TEMPLATE_REPOSITORY to the template repository, or blank. + # Must call AC_SUBST manually + # + AC_CACHE_CHECK([for C++ template_repository_directory], + [ompi_cv_cxx_template_repository], + [_OMPI_CXX_FIND_TEMPLATE_REPOSITORY]) + + if test "$ompi_cv_cxx_template_repository" = "not used" ; then + OMPI_CXX_TEMPLATE_REPOSITORY= + elif test "$ompi_cv_cxx_template_repository" = "templates not supported" ; then + OMPI_CXX_TEMPLATE_REPOSITORY= + else + OMPI_CXX_TEMPLATE_REPOSITORY="$ompi_cv_cxx_template_repository" + fi +]) + + +AC_DEFUN([_OMPI_CXX_FIND_TEMPLATE_REPOSITORY],[ +# Find the repository +mkdir conf_tmp_$$ +cd conf_tmp_$$ +cat > conftest.h < +class foo { +public: + foo(T yow) : data(yow) { yow.member(3); }; + void member(int i); +private: + T data; +}; + +class bar { +public: + bar(int i) { data = i; }; + void member(int j) { data = data * j; }; + +private: + int data; +}; +EOF + +cat > conftest2.C < var1(6); + foo< foo > var2(var1); +} +EOF + +cat > conftest1.C < +void +foo::member(int i) +{ + i += 2; +} + +int +main() +{ + foo var1(6); + foo< foo > var2(var1); + + some_other_function(); + return 0; +} +EOF + +ompi_template_failed= +echo configure:__oline__: $CXX $CXXFLAGS -c conftest1.C >&5 +$CXX $CXXFLAGS -c conftest1.C >&5 2>&5 +if test ! -f conftest1.o ; then + ompi_cv_cxx_template_repository="templates not supported" + echo configure:__oline__: here is the program that failed: >&5 + cat conftest1.C >&5 + echo configure:__oline__: here is conftest.h: >&5 + cat conftest.h >&5 + ompi_template_failed=1 +else + echo configure:__oline__: $CXX $CXXFLAGS -c conftest2.C >&5 + $CXX $CXXFLAGS -c conftest2.C >&5 2>&5 + if test ! -f conftest2.o ; then + ompi_cv_cxx_template_repository= + echo configure:__oline__: here is the program that failed: >&5 + cat conftest2.C >&5 + echo configure:__oline__: here is conftest.h: >&5 + cat conftest.h >&5 + else + rm -rf conftest* + + for ompi_file in `ls` + do + if test "$ompi_file" != "." && test "$ompi_file" != ".."; then + # Is it a directory? + if test -d "$ompi_file"; then + ompi_template_dir="$ompi_file $ompi_template_dir" + + # Or is it a file? + else + name="`echo $ompi_file | cut -d. -f1`" + + temp_mask= + if test "$name" = "main" || test "$name" = "other"; then + temp_mask="`echo $ompi_file | cut -d. -f2`" + if test "$ompi_template_filemask" = ""; then + ompi_template_filemask="$temp_mask"; + elif test "`echo $ompi_template_filemask | $GREP $temp_mask`" = ""; then + ompi_template_filemask="$ompi_template_filemask $temp_mask" + fi + fi + fi + fi + done + if test "$ompi_template_filemask" != ""; then + temp_mask= + for mask in $ompi_template_filemask + do + temp_mask="*.$mask $temp_mask" + done + ompi_template_filemask=$temp_mask + fi + fi +fi +ompi_cv_cxx_template_repository="$ompi_template_dir $ompi_template_filemask" + +if test "`echo $ompi_cv_cxx_template_repository`" = ""; then + ompi_cv_cxx_template_repository="not used" +fi +cd .. +rm -rf conf_tmp_$$ + +# Clean up +unset ompi_file ompi_template_failed ompi_template_dir]) diff --git a/config/ompi_cxx_have_exceptions.m4 b/config/ompi_cxx_have_exceptions.m4 new file mode 100644 index 00000000..2bd886e6 --- /dev/null +++ b/config/ompi_cxx_have_exceptions.m4 @@ -0,0 +1,44 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_CXX_HAVE_EXCEPTIONS],[ +# +# Arguments: None +# +# Depdencies: None +# +# Check to see if the C++ compiler can handle exceptions +# +# Sets OMPI_CXX_EXCEPTIONS to 1 if compiler has exceptions, 0 if not +# + +AC_MSG_CHECKING([for throw/catch]) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int i=1; throw(i);]])], + OMPI_CXX_EXCEPTIONS=1, OMPI_CXX_EXCPTIONS=0) +if test "$OMPI_CXX_EXCEPTIONS" = "1"; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + +# Clean up +AC_LANG_RESTORE])dnl diff --git a/config/ompi_endpoint_tag.m4 b/config/ompi_endpoint_tag.m4 new file mode 100644 index 00000000..c47df147 --- /dev/null +++ b/config/ompi_endpoint_tag.m4 @@ -0,0 +1,48 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2013 Sandia National Laboratories. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_REQUIRE_ENDPOINT_TAG_INIT], [ + ompi_endpoint_tag_counter=0 +]) + + +# OMPI_REQUIRE_ENDPOINT_TAG(tag_name) +# ----------------------------------- +# This component requires an endpoint tag (storage space in the +# ompi_proc_t structure) for a tag named tag_name. If tag_name +# already has a tag index, this function is a no-op. +AC_DEFUN([OMPI_REQUIRE_ENDPOINT_TAG], [ + AC_REQUIRE([OMPI_REQUIRE_ENDPOINT_TAG_INIT]) + AC_MSG_CHECKING([for index in endpoint array for tag $1]) + AS_IF([test -z "$OMPI_PROC_ENDPOINT_TAG_$1"], + [OMPI_PROC_ENDPOINT_TAG_$1=$ompi_endpoint_tag_counter + AC_DEFINE_UNQUOTED([OMPI_PROC_ENDPOINT_TAG_$1], [$OMPI_PROC_ENDPOINT_TAG_$1], + [Index into endpoint array for $1]) + ompi_endpoint_tag_counter=`expr $ompi_endpoint_tag_counter + 1`]) + AC_MSG_RESULT([$OMPI_PROC_ENDPOINT_TAG_$1]) +]) + + +AC_DEFUN([OMPI_REQUIRE_ENDPOINT_TAG_FINI], [ +dnl AC_ARG_ENABLE([dynamic-endpoint-information], +dnl [AC_HELP_STRING([--disable-dynamic-endpoint-information], +dnl [Disable support for dynamic endpoint information storage. This saves a considerable amount of memory for large processes, but makes loading outside components which require endpoint storage impossible.])]) +dnl AS_IF([test "$enable_endpoint_information" != "no"], +dnl [OMPI_REQUIRE_ENDPOINT_TAG(DYNAMIC)]) + + AC_MSG_CHECKING([for size of endpoint array]) + AS_IF([test -z "$ompi_endpoint_tag_counter" || test "$ompi_endpoint_tag_counter" = "0"], + [AC_MSG_ERROR([Endpoint index count is 0. This means no MPI communication would be possible. Aborting.])]) + AC_MSG_RESULT([$ompi_endpoint_tag_counter]) + AC_DEFINE_UNQUOTED([OMPI_PROC_ENDPOINT_TAG_MAX], [$ompi_endpoint_tag_counter], + [Maximum number of endpoint entries to be attached to an ompi_proc_t]) +]) diff --git a/config/ompi_ext.m4 b/config/ompi_ext.m4 new file mode 100644 index 00000000..40be85af --- /dev/null +++ b/config/ompi_ext.m4 @@ -0,0 +1,778 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2011-2012 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +###################################################################### +# +# OMPI_EXT +# +# configure the Interface Extensions [similar to MCA version]. Works hand in +# hand with Open MPI's autogen.pl, requiring it's specially formatted lists +# of frameworks, components, etc. +# +# USAGE: +# OMPI_EXT() +# +###################################################################### +AC_DEFUN([OMPI_EXT],[ + dnl for OPAL_CONFIGURE_USER env variable + AC_REQUIRE([OPAL_CONFIGURE_SETUP]) + + # Note that we do not build DSO's here -- we *only* build convenience + # libraries that get slurped into higher-level libraries + # + # [default -- no option given] = No extensions built + # --enable-mpi-ext=[,]*EXTENSION[,]* + # + AC_ARG_ENABLE(mpi-ext, + AC_HELP_STRING([--enable-mpi-ext[=LIST]], + [Comma-separated list of extensions that should be built. Possible values: ompi_mpiext_list. Example: "--enable-mpi-ext=foo,bar" will enable building the MPI extensions "foo" and "bar". If LIST is empty or the special value "all", then all available MPI extensions will be built (default: all).])) + + # print some nice messages about what we're about to do... + AC_MSG_CHECKING([for available MPI Extensions]) + AC_MSG_RESULT([ompi_mpiext_list]) + + AC_MSG_CHECKING([which MPI extension should be enabled]) + if test "$enable_mpi_ext" = "" || \ + test "$enable_mpi_ext" = "yes" || \ + test "$enable_mpi_ext" = "all"; then + enable_mpi_ext=all + msg="All Available Extensions" + str="`echo ENABLE_EXT_ALL=1`" + eval $str + else + ifs_save="$IFS" + IFS="${IFS}$PATH_SEPARATOR," + msg= + for item in $enable_mpi_ext; do + type="`echo $item | cut -s -f1 -d-`" + if test -z $type ; then + type=$item + fi + str="`echo ENABLE_${type}=1 | sed s/-/_/g`" + eval $str + msg="$item $msg" + done + IFS="$ifs_save" + fi + AC_MSG_RESULT([$msg]) + unset msg + + m4_ifdef([ompi_mpiext_list], [], + [m4_fatal([Could not find MPI Extensions list. Aborting.])]) + + EXT_CONFIGURE +]) + + +###################################################################### +# +# EXT_CONFIGURE +# +# USAGE: +# EXT_CONFIGURE() +# +###################################################################### +AC_DEFUN([EXT_CONFIGURE],[ + outdir=ompi/include + + # first create the output include directory + mkdir -p $outdir + + ############### + # C Bindings + ############### + + # remove any previously generated #include files + mpi_ext_h=$outdir/mpi-ext.h + rm -f $mpi_ext_h + + # Create the final mpi-ext.h file. + cat > $mpi_ext_h < $mpif_ext_h < $mpiusempi_ext_h < $mpiusempif08_ext_h <> $mpi_ext_h <> $mpif_ext_h <> $mpiusempi_ext_h <> $mpiusempif08_ext_h < $outfile < /dev/null 2>&1 + if test "$?" != "0"; then + mv $outfile $outfile_real + else + rm -f $outfile + fi + fi + rm -f $outfile.struct $outfile.extern + + # We have all the results we need. Now put them in various + # variables/defines so that others can see the results. + + OMPI_EXT_MAKE_DIR_LIST(OMPI_MPIEXT_ALL_SUBDIRS, $OMPI_MPIEXT_ALL) + + OMPI_EXT_MAKE_LISTS(OMPI_MPIEXT_C, $OMPI_MPIEXT_C, c, c) + OMPI_EXT_MAKE_LISTS(OMPI_MPIEXT_MPIFH, $OMPI_MPIEXT_MPIFH, mpif-h, mpifh) + OMPI_EXT_MAKE_LISTS(OMPI_MPIEXT_USEMPI, $OMPI_MPIEXT_USEMPI, use-mpi, usempi) + OMPI_EXT_MAKE_LISTS(OMPI_MPIEXT_USEMPIF08, $OMPI_MPIEXT_USEMPIF08, use-mpi-f08, usempif08) + + comps=`echo $OMPI_MPIEXT_C | sed -e 's/^[ \t]*//;s/[ \t]*$//;s/ /, /g'` + AC_DEFINE_UNQUOTED([OMPI_MPIEXT_COMPONENTS], ["$comps"], + [MPI Extensions included in libmpi]) +]) + + +###################################################################### +# +# EXT_CONFIGURE_M4_CONFIG_COMPONENT +# +# +# USAGE: +# EXT_CONFIGURE_M4_CONFIG_COMPONENT((1) component_name, +# (2) all_components_variable, +# (3) c_components_variable, +# (4) mpifh_components_variable, +# (5) usempi_components_variable, +# (6) usempif08_components_variable) +# +# - component_name is a single, naked string (no prefix) +# - all others are naked component names (e.g., "example"). If an +# extension is named in that variable, it means that that extension +# has bindings of that flavor. +# +###################################################################### +AC_DEFUN([EXT_CONFIGURE_M4_CONFIG_COMPONENT],[ + opal_show_subsubsubtitle "MPI Extension $1" + + EXT_COMPONENT_BUILD_CHECK($1, [should_build=1], [should_build=0]) + + # try to configure the component + m4_ifdef([OMPI_MPIEXT_$1_CONFIG], [], + [m4_fatal([Could not find OMPI_MPIEXT_]$1[_CONFIG macro for ]$1[ component])]) + + OMPI_MPIEXT_$1_CONFIG([should_build=${should_build}], [should_build=0]) + + AS_IF([test $should_build -eq 1], + [EXT_PROCESS_COMPONENT([$1], [$2], [$3], [$4], [$5], [$6])], + [EXT_PROCESS_DEAD_COMPONENT([$1], [$2])]) +]) + +###################################################################### +# +# EXT_PROCESS_COMPONENT +# +# does all setup work for given component. It should be known before +# calling that this component can build properly (and exists) +# +# USAGE: +# EXT_CONFIGURE_ALL_CONFIG_COMPONENTS((1) component_name +# (2) all_components_variable, +# (3) c_components_variable, +# (4) mpifh_components_variable, +# (5) usempi_components_variable, +# (6) usempif08_components_variable) +# +# C bindings are mandatory. Other bindings are optional / built if +# they are found. Here's the files that the m4 expects: +# +#-------------------- +# +# C: +# - c/mpiext__c.h: is included in mpi_ext.h +# - c/libmpiext_.la: convneience library slurped into libmpi.la +# +# mpi.f.h: +# - mpif-h/mpiext__mpifh.h: is included mpi mpif_ext.h +# - mpif-h/libmpiext__mpifh.la: convenience library slurped +# into libmpi_mpifh.la +# +# If the ..._mpifh.h file exists, it is assumed that "make all" will +# build the .la file. And therefore we'll include full support for +# the mpif.h bindings for this extension in OMPI. +# +#-------------------- +# +# use mpi: +# - use-mpi/mpiext__usempi.h: included in the mpi_ext module +# +# Only supported when the ignore-tkr mpi module is built (this +# currently means: when you don't use gfortran). +# +# If the ..._usempi.h file exists, it is assumed that we'll include +# full support for the mpi_ext bindings for this extension in OMPI. +# +# NO LIBRARY IS SUPPORTED FOR THE mpi MODULE BINDINGS! It is assumed +# that all required symbols will be in the +# libmpiext__mpifh.la library, and all that this set of +# bindings does it give strong type checking to those subroutines. +# +#-------------------- +# +# use mpi_f08: +# - use-mpi-f08/mpiext__usempif08.h: included in the mpi_ext module +# - use-mpi-f08/libmpiext__usempif08.la: convenience +# library slurped into libmpi_usempif08.la +# +# Only supported when the non-descriptor-based mpi_f08 module is built +# (this currently means: when you don't use gfortran). +# +# If the ..._usempif08.h file exists, it is assumed that "make all" +# will build the .la file. And therefore we'll include full support +# for the mpi_f08 bindings for this extension in OMPI. +# +###################################################################### +AC_DEFUN([EXT_PROCESS_COMPONENT],[ + component=$1 + + # Output pretty results + AC_MSG_CHECKING([if MPI Extension $component can compile]) + AC_MSG_RESULT([yes]) + + tmp[=]m4_translit([$1],[a-z],[A-Z]) + component_define="OMPI_HAVE_MPI_EXT_${tmp}" + + ############### + # C Bindings + ############### + test_header="${srcdir}/ompi/mpiext/$component/c/mpiext_${component}_c.h" + + AC_MSG_CHECKING([if MPI Extension $component has C bindings]) + + AS_IF([test ! -e "$test_header" && test ! -e "$test_header.in"], + [ # There *must* be C bindings + AC_MSG_RESULT([no]) + AC_MSG_WARN([C bindings for MPI extensions are required]) + AC_MSG_ERROR([Cannot continue])]) + + AC_MSG_RESULT([yes (required)]) + + # Save the list of headers and convenience libraries that this + # component will output + $2="$$2 $component" + $3="$$3 $component" + + # JMS Where is this needed? + EXT_C_HEADERS="$EXT_C_HEADERS mpiext/$component/c/mpiext_${component}_c.h" + + component_header="mpiext_${component}_c.h" + + cat >> $mpi_ext_h <> $mpif_ext_h <> $mpif_ext_h <> $mpiusempi_ext_h <> $mpiusempi_ext_h <> $mpiusempi_ext_h <> $mpiusempi_ext_h <> $mpiusempif08_ext_h <> $mpiusempif08_ext_h <> $mpiusempif08_ext_h <> $mpiusempif08_ext_h <> $outfile.extern + echo " &ompi_mpiext_${component}, " >> $outfile.struct]) + + # now add the flags that were set in the environment variables + # framework_component_FOO (for example, the flags set by + # m4_configure components) + m4_foreach(flags, [LDFLAGS, LIBS], + [AS_IF([test "$mpiext_$1_WRAPPER_EXTRA_]flags[" = ""], + [OPAL_FLAGS_APPEND_UNIQ([ompi_mca_wrapper_extra_]m4_tolower(flags), [$mpiext_$1_]flags)], + [OPAL_FLAGS_APPEND_UNIQ([ompi_mca_wrapper_extra_]m4_tolower(flags), [$mpiext_$1_WRAPPER_EXTRA_]flags)]) + ]) + + AS_IF([test "$mpiext_$1_WRAPPER_EXTRA_CPPFLAGS" != ""], + [OPAL_FLAGS_APPEND_UNIQ([ompi_mca_wrapper_extra_cppflags], [$mpiext_$1_WRAPPER_EXTRA_CPPFLAGS])]) +]) + + +###################################################################### +# +# EXT_PROCESS_DEAD_COMPONENT +# +# process a component that can not be built. Do the last minute checks +# to make sure the user isn't doing something stupid. +# +# USAGE: +# EXT_PROCESS_DEAD_COMPONENT((1) component_name, +# (2) all_components_variable) +# +# NOTE: component_name will not be determined until run time. +# +###################################################################### +AC_DEFUN([EXT_PROCESS_DEAD_COMPONENT],[ + AC_MSG_CHECKING([if MPI Extension $1 can compile]) + + # Need to add this component to the "all" list so that it is + # included in DIST SUBDIRS + $2="$$2 $1" + + AC_MSG_RESULT([no]) +]) + + + +###################################################################### +# +# EXT_COMPONENT_BUILD_CHECK +# +# checks the standard rules of component building to see if the +# given component should be built. +# +# USAGE: +# EXT_COMPONENT_BUILD_CHECK(component, +# action-if-build, action-if-not-build) +# +###################################################################### +AC_DEFUN([EXT_COMPONENT_BUILD_CHECK],[ + AC_REQUIRE([AC_PROG_GREP]) + + component=$1 + component_path="$srcdir/ompi/mpiext/$component" + want_component=0 + + # build if: + # - the component type is direct and we are that component + # - there is no ompi_ignore file + # - there is an ompi_ignore, but there is an empty ompi_unignore + # - there is an ompi_ignore, but username is in ompi_unignore + if test -d $component_path ; then + # decide if we want the component to be built or not. This + # is spread out because some of the logic is a little complex + # and test's syntax isn't exactly the greatest. We want to + # build the component by default. + want_component=1 + if test -f $component_path/.ompi_ignore ; then + # If there is an ompi_ignore file, don't build + # the component. Note that this decision can be + # overridden by the unignore logic below. + want_component=0 + fi + if test -f $component_path/.ompi_unignore ; then + # if there is an empty ompi_unignore, that is + # equivalent to having your userid in the unignore file. + # If userid is in the file, unignore the ignore file. + if test ! -s $component_path/.ompi_unignore ; then + want_component=1 + elif test ! -z "`$GREP $OPAL_CONFIGURE_USER $component_path/.ompi_unignore`" ; then + want_component=1 + fi + fi + fi + + # if we asked for everything, then allow it to build if able + str="ENABLED_COMPONENT_CHECK=\$ENABLE_EXT_ALL" + eval $str + if test ! "$ENABLED_COMPONENT_CHECK" = "1" ; then + # if we were explicitly disabled, don't build :) + str="ENABLED_COMPONENT_CHECK=\$ENABLE_${component}" + eval $str + if test ! "$ENABLED_COMPONENT_CHECK" = "1" ; then + want_component=0 + fi + fi + + AS_IF([test "$want_component" = "1"], [$2], [$3]) +]) + + +# OMPI_EXT_MAKE_DIR_LIST(subst'ed variable, shell list) +# +# Prefix every extension name with "mpiext/" and AC subst it. +# ------------------------------------------------------------------------- +AC_DEFUN([OMPI_EXT_MAKE_DIR_LIST],[ + $1= + for item in $2 ; do + $1="$$1 mpiext/$item" + done + AC_SUBST($1) +]) + +# OMPI_EXT_MAKE_LISTS((1) subst'ed variable prefix, +# (2) shell list, +# (3) bindings dir name, +# (4) bindings suffix) +# +# Prefix every extension name with "mpiext/". +# ------------------------------------------------------------------------- +AC_DEFUN([OMPI_EXT_MAKE_LISTS],[ + # Make the directory list + tmp= + for item in $2 ; do + tmp="$tmp mpiext/$item/$3" + done + $1_DIRS=$tmp + AC_SUBST($1_DIRS) + + # Make the list of libraries + tmp= + for item in $2 ; do + tmp="$tmp "'$(top_builddir)'"/ompi/mpiext/$item/$3/libmpiext_${item}_$4.la" + done + $1_LIBS=$tmp + AC_SUBST($1_LIBS) +]) diff --git a/config/ompi_find_mpi_aint_count_offset.m4 b/config/ompi_find_mpi_aint_count_offset.m4 new file mode 100644 index 00000000..d16bcc79 --- /dev/null +++ b/config/ompi_find_mpi_aint_count_offset.m4 @@ -0,0 +1,246 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. +# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +# Copyright (c) 2014 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2015 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AC_DEFUN([OMPI_FIND_MPI_AINT_COUNT_OFFSET],[ + _OMPI_FIND_MPI_AINT_TYPE + _OMPI_FIND_MPI_COUNT_TYPE + _OMPI_FIND_MPI_OFFSET_TYPE + + if test "$ompi_fortran_happy" = "1" && \ + test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS"; then + _OMPI_FIND_MPI_INTEGER_KIND + _OMPI_FIND_MPI_ADDRESS_KIND + _OMPI_FIND_MPI_COUNT_KIND + _OMPI_FIND_MPI_OFFSET_KIND + fi +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_AINT_TYPE], [ + # Find the type of MPI_Aint. We already did the work to figure + # out what opal_ptrdiff will be; just use that. + AC_MSG_CHECKING([for type of MPI_Aint]) + + MPI_AINT_TYPE=$opal_ptrdiff_t + # Get the size of this type; we'll need it to figure out Fortran's + # MPI_ADDRESS_KIND, later + MPI_AINT_SIZE=$opal_ptrdiff_size + AC_DEFINE_UNQUOTED(OMPI_MPI_AINT_TYPE, [$MPI_AINT_TYPE], + [Type of MPI_Aint]) + + AC_MSG_RESULT([$MPI_AINT_TYPE (size: $MPI_AINT_SIZE)]) +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_COUNT_TYPE], [ + # Find the type of MPI_Count. Per MPI-3.0 2.5.8, it needs to be + # as least as large as an int, MPI_Aint, and MPI_Offset (we'll + # define MPI_Offset later to be the same as an MPI_Count). + + # Note, however, that per + # https://svn.open-mpi.org/trac/ompi/ticket/4205, MPI_Count cannot + # be larger than a size_t (e.g., if you're compiling in 32 bit + # more on a 64 bit platform, long long will be 8 bytes, but size_t + # will only be 4 bytes). The entire BTL, PML, and convertor + # infrastructure rely on sizeof(MPI_Count) being <= + # sizeof(size_t). So artificially limit the size of MPI_Count, if + # necessary. + + # Also note: do not search for int64_t or int32_t, because using + # these types mean that we would need to include in + # mpi.h, which we probably shouldn't do. + + # Finally, note that MPI_Count has an impact on the extent of a + # datatype, extent defined by the MPI standard as an MPI_Aint. + # This MPI_Aint is also the largest different between two memory + # pointers -- the well-known ptrdiff_t. There *are* systems where + # the address space is 32 bit but the filesystem space is 64 bit + # (e.g., BlueGene), and therefore MPI_Aint is 32 bit and + # MPI_Offset (and therefore MPI_Count) is 64 bit. Open MPI + # doesn't currently support this configuration -- re-tooling in + # the convertor/PML/BML/BTL will be necessary before that can work + # properly. + + # Keep in mind, however, that while ptrdiff_t and size_t represent + # similar concepts (length or displacement in memory), one is + # slightly larger than the other (one is unsigned and the other + # signed) and there is no requirement for them to be of the same + # width. On systems with non-monolithic memory space, the scheme + # we use below may not work. On systems with non-monolithic + # memory space, the scheme we use below may not work. ...but such + # systems are pretty rare today. + + MPI_COUNT_TYPE=unknonwn + AC_MSG_CHECKING([for type of MPI_Count]) + if test $ac_cv_type_long_long = yes && \ + test $ac_cv_sizeof_long_long -le $ac_cv_sizeof_size_t && \ + test $ac_cv_sizeof_long_long -ge $MPI_AINT_SIZE; then + MPI_COUNT_TYPE="long long" + MPI_COUNT_DATATYPE=MPI_LONG_LONG + MPI_COUNT_SIZE=$ac_cv_sizeof_long_long + elif test $ac_cv_sizeof_long -le $ac_cv_sizeof_size_t && \ + test $ac_cv_sizeof_long -ge $MPI_AINT_SIZE; then + MPI_COUNT_TYPE=long + MPI_COUNT_DATATYPE=MPI_LONG + MPI_COUNT_SIZE=$ac_cv_sizeof_long + elif test $ac_cv_sizeof_int -le $ac_cv_sizeof_size_t && \ + test $ac_cv_sizeof_int -ge $MPI_AINT_SIZE; then + MPI_COUNT_TYPE=int + MPI_COUNT_DATATYPE=MPI_INT + MPI_COUNT_SIZE=$ac_cv_sizeof_int + fi + + if test "$MPI_COUNT_TYPE" = "unknown"; then + AC_MSG_RESULT([not found]) + AC_MSG_WARN([*** Unable to find a good type for MPI_Count]) + AC_MSG_ERROR([Cannot continue]) + fi + + if test $MPI_COUNT_SIZE -eq 8 ; then + MPI_COUNT_MAX="0x7fffffffffffffffll" + elif test $MPI_COUNT_SIZE -eq 4 ; then + MPI_COUNT_MAX="0x7fffffffl" + elif test $MPI_COUNT_SIZE -eq 2 ; then + MPI_COUNT_MAX="0x7fff" + else + AC_MSG_RESULT([$MPI_COUNT_TYPE (size: $MPI_COUNT_SIZE)]) + AC_MSG_WARN([*** Configure cannot handle this size -- contact Open MPI developers]) + AC_MSG_ERROR([Cannot continue]) + fi + + AC_DEFINE_UNQUOTED(OMPI_MPI_COUNT_SIZE, $MPI_COUNT_SIZE, + [Size of the MPI_Count datatype]) + AC_DEFINE_UNQUOTED(OMPI_MPI_COUNT_TYPE, $MPI_COUNT_TYPE, + [Type of the MPI_Count datatype]) + AC_DEFINE_UNQUOTED(MPI_COUNT_MAX, $MPI_COUNT_MAX, + [Maximum value for an MPI_Count]) + + AC_MSG_RESULT([$MPI_COUNT_TYPE (size: $MPI_COUNT_SIZE)]) +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_OFFSET_TYPE], [ + # Just make MPI_Offset be the same as MPI_Count + AC_MSG_CHECKING([for type of MPI_Offset]) + + MPI_OFFSET_TYPE=$MPI_COUNT_TYPE + AC_DEFINE_UNQUOTED(OMPI_MPI_OFFSET_TYPE, $MPI_OFFSET_TYPE, + [Type of MPI_Offset]) + MPI_OFFSET_SIZE=$MPI_COUNT_SIZE + AC_DEFINE_UNQUOTED(OMPI_MPI_OFFSET_SIZE, $MPI_OFFSET_SIZE, + [Size of the MPI_Offset]) + AC_MSG_RESULT([$MPI_COUNT_TYPE (size: $MPI_OFFSET_SIZE)]) + + AC_MSG_CHECKING([for an MPI datatype for MPI_Offset]) + MPI_OFFSET_DATATYPE=$MPI_COUNT_DATATYPE + AC_DEFINE_UNQUOTED(OMPI_OFFSET_DATATYPE, $MPI_OFFSET_DATATYPE, + [MPI datatype corresponding to MPI_Offset]) + AC_MSG_RESULT([$MPI_OFFSET_DATATYPE]) +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_INTEGER_KIND], [ + # Get the kind value for Fortran MPI_INTEGER_KIND (corresponding + # to whatever is the same size as a F77 INTEGER -- for the + # most-likely-will-never-occur case where F77 INTEGER is smaller + # than an F90 INTEGER; see MPI-2 4.12.6.5. As with OMPI + # FORTRAN_CHECK, use the official BIND(C) KIND names (see comment + # in fortran_check.m4). + AC_MSG_CHECKING([for MPI_INTEGER_KIND]) + if test $OMPI_SIZEOF_FORTRAN_INTEGER -eq 2; then + OMPI_MPI_INTEGER_KIND=$OMPI_FORTRAN_C_INT16_T_KIND + elif test $OMPI_SIZEOF_FORTRAN_INTEGER -eq 4; then + OMPI_MPI_INTEGER_KIND=$OMPI_FORTRAN_C_INT32_T_KIND + elif test $OMPI_SIZEOF_FORTRAN_INTEGER -eq 8; then + OMPI_MPI_INTEGER_KIND=$OMPI_FORTRAN_C_INT64_T_KIND + elif test $OMPI_SIZEOF_FORTRAN_INTEGER -eq 16; then + AC_MSG_ERROR([Cannot support Fortran MPI_INTEGER_KIND!]) + fi + AC_SUBST(OMPI_MPI_INTEGER_KIND) + AC_MSG_RESULT([$OMPI_MPI_INTEGER_KIND]) +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_ADDRESS_KIND], [ + # Get the kind value for Fortran MPI_ADDRESS_KIND (corresponding + # to whatever is big enough to hold MPI_Aint). + AC_MSG_CHECKING([for MPI_ADDRESS_KIND]) + if test $MPI_AINT_SIZE -eq 2 ; then + OMPI_MPI_ADDRESS_KIND=$OMPI_FORTRAN_C_INT16_T_KIND + elif test $MPI_AINT_SIZE -eq 4 ; then + OMPI_MPI_ADDRESS_KIND=$OMPI_FORTRAN_C_INT32_T_KIND + elif test $MPI_AINT_SIZE -eq 8 ; then + OMPI_MPI_ADDRESS_KIND=$OMPI_FORTRAN_C_INT64_T_KIND + elif test $MPI_AINT_SIZE -eq 16 ; then + AC_MSG_ERROR([Cannot support Fortran MPI_ADDRESS_KIND!]) + fi + AC_SUBST(OMPI_MPI_ADDRESS_KIND) + AC_MSG_RESULT([$OMPI_MPI_ADDRESS_KIND]) +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_COUNT_KIND], [ + # Get the kind value for Fortran MPI_COUNT_KIND (corresponding to + # whatever is big enough to hold an MPI_Count) + AC_MSG_CHECKING([for MPI_COUNT_KIND]) + if test $MPI_COUNT_SIZE -eq 2 ; then + OMPI_MPI_COUNT_KIND=$OMPI_FORTRAN_C_INT16_T_KIND + elif test $MPI_COUNT_SIZE -eq 4 ; then + OMPI_MPI_COUNT_KIND=$OMPI_FORTRAN_C_INT32_T_KIND + elif test $MPI_COUNT_SIZE -eq 8 ; then + OMPI_MPI_COUNT_KIND=$OMPI_FORTRAN_C_INT64_T_KIND + elif test $MPI_COUNT_SIZE -eq 16 ; then + AC_MSG_ERROR([Cannot support Fortran MPI_COUNT_KIND!]) + fi + AC_SUBST(OMPI_MPI_COUNT_KIND) + AC_MSG_RESULT([$OMPI_MPI_COUNT_KIND]) +]) + +dnl ######################################################################### + +AC_DEFUN([_OMPI_FIND_MPI_OFFSET_KIND], [ + # Get the kind value for Fortran MPI_OFFSET_KIND (corresponding to + # whatever is big enough to hold an MPI_Offset) + AC_MSG_CHECKING([for MPI_OFFSET_KIND]) + if test $MPI_OFFSET_SIZE -eq 2 ; then + OMPI_MPI_OFFSET_KIND=$OMPI_FORTRAN_C_INT16_T_KIND + elif test $MPI_OFFSET_SIZE -eq 4 ; then + OMPI_MPI_OFFSET_KIND=$OMPI_FORTRAN_C_INT32_T_KIND + elif test $MPI_OFFSET_SIZE -eq 8 ; then + OMPI_MPI_OFFSET_KIND=$OMPI_FORTRAN_C_INT64_T_KIND + elif test $MPI_OFFSET_SIZE -eq 16 ; then + AC_MSG_ERROR([Cannot support Fortran MPI_OFFSET_KIND!]) + fi + AC_SUBST(OMPI_MPI_OFFSET_KIND) + AC_MSG_RESULT([$OMPI_MPI_OFFSET_KIND]) +]) diff --git a/config/ompi_fortran_check.m4 b/config/ompi_fortran_check.m4 new file mode 100644 index 00000000..46ecf24d --- /dev/null +++ b/config/ompi_fortran_check.m4 @@ -0,0 +1,203 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +# OMPI_FORTRAN_CHECK(Fortran type, c type required, types to search, +# expected size, define ompi_fortran__t or not)) +#---------------------------------------------------------- +# Check Fortran type, including: +# - whether compiler supports or not +# - size of type +# - equal to expected size +# - alignment +# - associated C type +# +# types to search is a comma-seperated list of values +AC_DEFUN([OMPI_FORTRAN_CHECK], [ + OPAL_VAR_SCOPE_PUSH([ofc_have_type ofc_type_size ofc_type_alignment ofc_c_type ofc_expected_size]) + + ofc_expected_size=$4 + ofc_define_type=$5 + ofc_have_type=0 + ofc_type_size=$ac_cv_sizeof_int + ofc_type_alignment=$ac_cv_sizeof_int + ofc_c_type=ompi_fortran_bogus_type_t + ofc_type_kind=0 + + # Only check if we actually want the Fortran bindings / have a + # Fortran compiler. This allows us to call this macro, even if + # there is no Fortran compiler. If we have no Fortran compiler, + # then just set a bunch of defaults. + if test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS; then + OMPI_FORTRAN_CHECK_TYPE([$1], [ofc_have_type=1], [ofc_have_type=0]) + else + AC_MSG_CHECKING([if Fortran compiler supports $1]) + AC_MSG_RESULT([skipped]) + fi + + if test "$ofc_have_type" = "1"; then + # What is the size of this type? + + # NOTE: Some Fortran compilers actually will return that a + # type exists even if it doesn't support it -- the compiler + # will automatically convert the unsupported type to a type + # that it *does* support. For example, if you try to use + # INTEGER*16 and the compiler doesn't support it, it may well + # automatically convert it to INTEGER*8 for you (!). So we + # have to check the actual size of the type once we determine + # that the compiler doesn't error if we try to use it + # (i.e,. the compiler *might* support that type). If the size + # doesn't match the expected size, then the compiler doesn't + # really support it. + OMPI_FORTRAN_GET_SIZEOF([], [$1], [ofc_type_size]) + if test "$ofc_expected_size" != "-1" && test "$ofc_type_size" != "$ofc_expected_size"; then + AC_MSG_WARN([*** Fortran $1 does not have expected size!]) + AC_MSG_WARN([*** Expected $ofc_expected_size, got $ofc_type_size]) + AC_MSG_WARN([*** Disabling MPI support for Fortran $1]) + ofc_have_type=0 + else + # Look for a corresponding C type (will abort by itself if the + # type isn't found and we need it) + ofc_c_type= + m4_ifval([$3], [OPAL_FIND_TYPE([$1], [$3], [$2], [$ofc_type_size], [ofc_c_type]) + if test -z "$ofc_c_type" ; then + ofc_have_type=0 + fi]) + + # Get the alignment of the type + if test "$ofc_have_type" = "1"; then + OMPI_FORTRAN_GET_ALIGNMENT([$1], [ofc_type_alignment]) + + # Add it to the relevant list of types found + if test "$ofc_expected_size" != "-1"; then + ofc_letter=m4_translit(m4_bpatsubst($1, [^\(.\).+], [[\1]]), [a-z], [A-Z]) + ofc_str="OMPI_FORTRAN_${ofc_letter}KINDS=\"\$OMPI_FORTRAN_${ofc_letter}KINDS $ofc_type_size \"" + eval $ofc_str + fi + fi + + # Get the kind of the type. We do this by looking at the + # Fortran type's corresponding C type (which we figured + # out above). Then we look a the official BIND(C) KIND + # type for that type. The official BIND(C) types were + # taken from table 15.2 of the Fortran 2008 standard, + # published on 6 October as ISO/IEC 1539-1:2010 (this is + # not a free document). A copy of this table is in the + # file ompi/mpi/fortran/c_to_integer_kind_mapping.pdf. + + # NOTE: Some of the values of these C_* constants *may be + # negative* if the compiler doesn't support them. We have + # already verified that both the Fortran and the C types + # both exist. However, the compiler may still have -1 for + # the C_ constants if the C type is not the same + # format as its corresponding Fortran type (e.g., Absoft's + # "REAL*16" and "long double" are the same size, but not + # the same format -- so the compiler is allowed to define + # C_LONG_DOUBLE to -1). + + AC_MSG_CHECKING([for corresponding KIND value of $1]) + case "$ofc_c_type" in + char) ofc_type_kind=C_SIGNED_CHAR ;; + double) ofc_type_kind=C_DOUBLE ;; + float) ofc_type_kind=C_FLOAT ;; + int) ofc_type_kind=C_INT ;; + int16_t) ofc_type_kind=C_INT16_T ;; + int32_t) ofc_type_kind=C_INT32_T ;; + int64_t) ofc_type_kind=C_INT64_T ;; + int8_t) ofc_type_kind=C_INT8_T ;; + long) ofc_type_kind=C_LONG ;; + long*double) ofc_type_kind=C_LONG_DOUBLE ;; + long*long) ofc_type_kind=C_LONG_LONG ;; + short) ofc_type_kind=C_SHORT ;; + float*_Complex) ofc_type_kind=C_FLOAT_COMPLEX ;; + double*_Complex) ofc_type_kind=C_DOUBLE_COMPLEX ;; + long*double*_Complex) ofc_type_kind=C_LONG_DOUBLE_COMPLEX ;; + *) + # Skip types like "DOUBLE PRECISION" + ;; + esac + AS_IF([test "$ofc_type_kind" != ""], + [AC_MSG_RESULT([$ofc_type_kind])], + [AC_MSG_RESULT([])]) + + # See if the value is -1. If so, then just say we don't + # have a match. If the compiler doesn't support + # ISO_C_BINDING, then we'll just fall back to a default + # kind and hope for the best. :-\ + OMPI_FORTRAN_GET_KIND_VALUE([$ofc_type_kind], 4, [ofc_type_kind_value]) + AS_IF([test $ofc_type_kind_value -le 0], + [ofc_have_type=0 + AC_MSG_WARN([Compiler $1 and $ofc_c_type mismatch; MPI datatype unsupported])]) + fi + fi + + # We always need these defines -- even if we don't have a given + # type, there are some places in the code where we have to have + # *something*. Note that the bpatsubst's are the same as used + # above (see comment above), but we added a translit to make them + # uppercase. + + # If we got a pretty name, use that as the basis. If not, use the + # first part of the provided fortran type (e.g., + # "logical(selected_int_kind(2))" -> logical1") + + # Finally, note that it is necessary to use the Big Long Ugly m4 + # expressions in the AC_DEFINE_UNQUOTEDs. If you don't (e.g., put + # the result of the BLUm4E in a shell variable and use that in + # AC_DEFINE_UNQUOTED), autoheader won't put them in the + # AC_CONFIG_HEADER (or AM_CONFIG_HEADER, in our case). + AC_DEFINE_UNQUOTED([OMPI_HAVE_FORTRAN_]m4_translit(m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_]), [a-z], [A-Z]), + [$ofc_have_type], + [Whether we have Fortran $1 or not]) + AC_DEFINE_UNQUOTED([OMPI_SIZEOF_FORTRAN_]m4_translit(m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_]), [a-z], [A-Z]), + [$ofc_type_size], + [Size of Fortran $1]) + AC_DEFINE_UNQUOTED([OMPI_ALIGNMENT_FORTRAN_]m4_translit(m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_]), [a-z], [A-Z]), + [$ofc_type_alignment], + [Alignment of Fortran $1]) + AC_DEFINE_UNQUOTED([OMPI_KIND_FORTRAN_]m4_translit(m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_]), [a-z], [A-Z]), + [$ofc_type_kind], + [Fortrn KIND number for $1]) + if test "$3" != "" && test "$ofc_define_type" = "yes"; then + AC_DEFINE_UNQUOTED([ompi_fortran_]m4_translit(m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_]), [A-Z], [a-z])[_t], + [$ofc_c_type], + [C type corresponding to Fortran $1]) + fi + + # Save some in shell variables for later use (e.g., need + # OMPI_SIZEOF_FORTRAN_INTEGER in OMPI_FORTRAN_GET_HANDLE_MAX) + [OMPI_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])[_C_TYPE=$ofc_c_type] + [OMPI_KIND_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])[=$ofc_type_kind] + [OMPI_HAVE_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])[=$ofc_have_type] + [OMPI_SIZEOF_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])[=$ofc_type_size] + [OMPI_ALIGNMENT_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])[=$ofc_type_alignment] + + # Wow, this is sick. But it works! :-) + AC_SUBST([OMPI_HAVE_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])) + AC_SUBST([OMPI_KIND_FORTRAN_]m4_translit(m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_]), [a-z], [A-Z])) + AC_SUBST([OMPI_SIZEOF_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])) + AC_SUBST([OMPI_SIZEOF_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])) + AC_SUBST([OMPI_ALIGNMENT_FORTRAN_]m4_bpatsubst(m4_bpatsubst([$1], [*], []), [[^a-zA-Z0-9_]], [_])) + + # Clean up + OPAL_VAR_SCOPE_POP +])dnl diff --git a/config/ompi_fortran_check_abstract.m4 b/config/ompi_fortran_check_abstract.m4 new file mode 100644 index 00000000..422ce35b --- /dev/null +++ b/config/ompi_fortran_check_abstract.m4 @@ -0,0 +1,47 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "abstract" +# keyword in derived types or not. + +# OMPI_FORTRAN_CHECK_ABSTRACT([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_ABSTRACT],[ + AS_VAR_PUSHDEF([abstract_var], [ompi_cv_fortran_abstract]) + + AC_CACHE_CHECK([if Fortran compiler supports ABSTRACT], abstract_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[MODULE abstract_mod +ABSTRACT INTERFACE +SUBROUTINE binky +END SUBROUTINE +END INTERFACE +END MODULE abstract_mod]])], + [AS_VAR_SET(abstract_var, yes)], + [AS_VAR_SET(abstract_var, no)]) + touch conftest_foo.mod + rm -rf *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(abstract_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([abstract_var])dnl +]) diff --git a/config/ompi_fortran_check_asynchronous.m4 b/config/ompi_fortran_check_asynchronous.m4 new file mode 100644 index 00000000..0cc3c84b --- /dev/null +++ b/config/ompi_fortran_check_asynchronous.m4 @@ -0,0 +1,48 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "asynchronous" +# keyword in derived types or not. + +# OMPI_FORTRAN_CHECK_ASYNCHRONOUS([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_ASYNCHRONOUS],[ + AS_VAR_PUSHDEF([asynchronous_var], [ompi_cv_fortran_asynchronous]) + + AC_CACHE_CHECK([if Fortran compiler supports ASYNCHRONOUS], asynchronous_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[MODULE asynch_mod +INTERFACE +SUBROUTINE binky(buf) + REAL, DIMENSION(*), ASYNCHRONOUS :: buf +END SUBROUTINE +END INTERFACE +END MODULE asynch_mod]])], + [AS_VAR_SET(asynchronous_var, yes)], + [AS_VAR_SET(asynchronous_var, no)]) + touch conftest_foo.mod + rm -rf *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(asynchronous_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([asynchronous_var])dnl +]) diff --git a/config/ompi_fortran_check_bind_c.m4 b/config/ompi_fortran_check_bind_c.m4 new file mode 100644 index 00000000..bcdf6e31 --- /dev/null +++ b/config/ompi_fortran_check_bind_c.m4 @@ -0,0 +1,119 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports iso_c_binding or not +# +# OMPI_FORTRAN_CHECK_ISO_C_BINDING([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_ISO_C_BINDING],[ + AS_VAR_PUSHDEF([iso_c_binding_var], [ompi_cv_fortran_have_iso_c_binding]) + + AC_CACHE_CHECK([if Fortran compiler supports ISO_C_BINDING], iso_c_binding_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[program check_for_iso_c_binding + use, intrinsic :: iso_c_binding + type CType + integer(C_INT) :: i + end type +end program]])], + [AS_VAR_SET(iso_c_binding_var, yes)], + [AS_VAR_SET(iso_c_binding_var, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(iso_c_binding_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([iso_c_binding_var]) +]) + +# Check for SUBROUTINE ... BIND(C) +# OMPI_FORTRAN_CHECK_BIND_C_SUB([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_BIND_C_SUB],[ + AS_VAR_PUSHDEF([bind_c_sub_var], [ompi_cv_fortran_have_bind_c_sub]) + + AC_CACHE_CHECK([if Fortran compiler supports SUBROUTINE BIND(C)], bind_c_sub_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[program check_for_bind_c_sub + use, intrinsic :: iso_c_binding + interface + subroutine foo(i) bind(c) + integer :: i + end subroutine foo + end interface +end program]])], + [AS_VAR_SET(bind_c_sub_var, yes)], + [AS_VAR_SET(bind_c_sub_var, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(bind_c_sub_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([bind_c_sub_var]) +]) + +# Check for TYPE, BIND(C) :: derived_type +# OMPI_FORTRAN_CHECK_BIND_C_TYPE([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_BIND_C_TYPE],[ + AS_VAR_PUSHDEF([bind_c_type_var], [ompi_cv_fortran_have_bind_c_type]) + + AC_CACHE_CHECK([if Fortran compiler supports TYPE, BIND(C)], bind_c_type_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[module bindc_test + use, intrinsic :: iso_c_binding + type, bind(c) :: foo + integer :: value + end type foo +end module]])], + [AS_VAR_SET(bind_c_type_var, yes)], + [AS_VAR_SET(bind_c_type_var, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(bind_c_type_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([bind_c_type_var])dnl +]) + +# Check for TYPE(type), BIND(C, name="name") +# OMPI_FORTRAN_CHECK_BIND_C_TYPE_NAME([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_BIND_C_TYPE_NAME],[ + AS_VAR_PUSHDEF([bind_c_type_name_var], [ompi_cv_fortran_have_bind_c_type_name]) + + # See comment in ompi_setup_mpi_fortran.m4: it is important that + # the bind(c) name in this text is longer than 32 characters. + + AC_CACHE_CHECK([if Fortran compiler supports TYPE(type), BIND(C, NAME="name")], bind_c_type_name_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[module bindc_test + use, intrinsic :: iso_c_binding + type, bind(c) :: foo + integer :: value + end type foo + + type(foo), bind(c, name="really_long_name_longer_than_32_chars") :: bar +end module]])], + [AS_VAR_SET(bind_c_type_name_var, yes)], + [AS_VAR_SET(bind_c_type_name_var, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(bind_c_type_name_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([bind_c_type_name_var])dnl +]) diff --git a/config/ompi_fortran_check_c_funloc.m4 b/config/ompi_fortran_check_c_funloc.m4 new file mode 100644 index 00000000..06104fdb --- /dev/null +++ b/config/ompi_fortran_check_c_funloc.m4 @@ -0,0 +1,49 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2014 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler implements +# TS 29113 subclause 8.1: +# Removed restrictions on ISO_C_BINDING module procedures. + +# OMPI_FORTRAN_CHECK_C_FUNLOC([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_C_FUNLOC],[ + AS_VAR_PUSHDEF([c_funloc], [ompi_cv_fortran_c_funloc]) + + AC_CACHE_CHECK([if Fortran compiler supports C_FUNLOC/TS 29113], c_funloc, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[program main +abstract interface + subroutine MPI_Comm_errhandler_function(comm, error_code) + implicit none + integer :: comm, error_code + end subroutine +end interface + +contains + +subroutine mysub(fn) + use, intrinsic :: iso_c_binding, only : c_funloc, c_funptr + procedure(MPI_Comm_errhandler_function) :: comm_errhandler_fn + type(c_funptr) :: comm_errhandler_fn_c + comm_errhandler_fn_c = c_funloc(comm_errhandler_fn) +end subroutine mysub +end program]])], + [AS_VAR_SET(c_funloc, yes)], + [AS_VAR_SET(c_funloc, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(c_funloc, [yes], [$1], [$2]) + AS_VAR_POPDEF([c_funloc])dnl +]) diff --git a/config/ompi_fortran_check_f08_assumed_rank.m4 b/config/ompi_fortran_check_f08_assumed_rank.m4 new file mode 100644 index 00000000..023569a2 --- /dev/null +++ b/config/ompi_fortran_check_f08_assumed_rank.m4 @@ -0,0 +1,61 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ + +# Does this compiler support the Fortran 2008 assumed rank syntax? + +# OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK([action if found], +# [action if not found]) +# ---------------------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK], [ + AS_VAR_PUSHDEF([fortran_f08_assumed_rank], + [ompi_cv_fortran_f08_assumed_rank]) + + AC_CACHE_CHECK([Fortran compiler F08 assumed rank syntax], + fortran_f08_assumed_rank, + [_OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK]) + + AS_VAR_IF(fortran_f08_assumed_rank, [yes], [$1], [$2]) +]) + +################################### + +AC_DEFUN([_OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK], [ + OPAL_VAR_SCOPE_PUSH([happy]) + + # If we were called here, it means that the value was not cached, + # so we need to check several different things. Since CACHE_CHECK + # puts up a MSG_CHECKING, we need to terminate it with a bogus + # answer before doing the individual checks. + AC_MSG_RESULT([not cached; checking]) + + # Check for the F08 type(*),dimension(..) syntax + OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB([!], [TYPE(*), DIMENSION(..)], + [TYPE(*), DIMENSION(..)], + [happy=yes], [happy=no]) + + AS_VAR_SET(fortran_f08_assumed_rank, [$happy]); + + # Now put the orignal CACHE_CHECK MSG_CHECKING back so that it can + # output the MSG_RESULT. + AC_MSG_CHECKING([Fortran compiler F08 assumed rank syntax]) + OPAL_VAR_SCOPE_POP +]) diff --git a/config/ompi_fortran_check_ignore_tkr.m4 b/config/ompi_fortran_check_ignore_tkr.m4 new file mode 100644 index 00000000..ee69e49e --- /dev/null +++ b/config/ompi_fortran_check_ignore_tkr.m4 @@ -0,0 +1,205 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ + +# Does this compiler support (void*)-like functionality for MPI choice +# buffers? If so, which flavor? +AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR], [ + OPAL_VAR_SCOPE_PUSH([result happy type predecl]) + + OMPI_FORTRAN_IGNORE_TKR_PREDECL= + OMPI_FORTRAN_IGNORE_TKR_TYPE= + + AS_VAR_PUSHDEF([fortran_ignore_tkr_data], + [ompi_cv_fortran_ignore_tkr_data]) + + # Note that we can only cache 1 value at a time, but this test + # needs to check for 2 things: the ignore TKR predecl and the + # type. So we encode them into a string of the form + # <1|0>::. Ugh. + AC_CACHE_CHECK([Fortran compiler ignore TKR syntax], + fortran_ignore_tkr_data, + [_OMPI_FORTRAN_CHECK_IGNORE_TKR]) + AS_VAR_COPY([result], [fortran_ignore_tkr_data]) + + # Parse the result + happy=`echo $result | cut -d: -f1` + type=`echo $result | cut -d: -f2` + predecl=`echo $result | cut -d: -f3-` + + AS_IF([test $happy -eq 1], + [OMPI_FORTRAN_IGNORE_TKR_PREDECL=$predecl + OMPI_FORTRAN_IGNORE_TKR_TYPE=$type + $1], + [$2]) + + AS_VAR_POPDEF([fortran_ignore_tkr_data]) + OPAL_VAR_SCOPE_POP +]) + +################ + +AC_DEFUN([_OMPI_FORTRAN_CHECK_IGNORE_TKR], [ + OPAL_VAR_SCOPE_PUSH([happy ompi_fortran_ignore_tkr_predecl ompi_fortran_ignore_tkr_type]) + + # If we were called here, it means that the value was not cached, + # so we need to check several different things. Since CACHE_CHECK + # puts up a MSG_CHECKING, we need to terminate it with a bogus + # answer before doing the individual checks. + AC_MSG_RESULT([not cached; checking variants]) + + # Default values + ompi_fortran_ignore_tkr_predecl=! + ompi_fortran_ignore_tkr_type=real + + # Vendor-neutral, TYPE(*) syntax + OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB( + [!], [type(*)], + [TYPE(*), DIMENSION(*)], + [happy=1], [happy=0]) + + # GCC compilers + AS_IF([test $happy -eq 0], + [OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB( + [!GCC\$ ATTRIBUTES NO_ARG_CHECK ::], [type(*), dimension(*)], + [!GCC\$ ATTRIBUTES NO_ARG_CHECK], + [happy=1], [happy=0])]) + # Intel compilers + AS_IF([test $happy -eq 0], + [OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB( + [!DEC\$ ATTRIBUTES NO_ARG_CHECK ::], [real, dimension(*)], + [!DEC\$ ATTRIBUTES NO_ARG_CHECK], + [happy=1], [happy=0])]) + # Solaris Studio compilers + # Note that due to a compiler bug, we have been advised by Oracle to + # use the "character(*)" type + AS_IF([test $happy -eq 0], + [OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB( + [!\$PRAGMA IGNORE_TKR], [character(*)], + [!\$PRAGMA IGNORE_TKR], + [happy=1], [happy=0])]) + # Cray compilers + AS_IF([test $happy -eq 0], + [OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB( + [!DIR\$ IGNORE_TKR], [real, dimension(*)], + [!DIR\$ IGNORE_TKR], + [happy=1], [happy=0])]) + # IBM compilers + AS_IF([test $happy -eq 0], + [OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB( + [!IBM* IGNORE_TKR], [real, dimension(*)], + [!IBM* IGNORE_TKR], + [happy=1], [happy=0])]) + + AS_VAR_SET(fortran_ignore_tkr_data, + [${happy}:${ompi_fortran_ignore_tkr_type}:${ompi_fortran_ignore_tkr_predecl}]) + + # Now put the orignal CACHE_CHECK MSG_CHECKING back so that it can + # output the MSG_RESULT. + AC_MSG_CHECKING([Fortran compiler ignore TKR syntax]) + OPAL_VAR_SCOPE_POP +])dnl + +################################### + +# Generic check to see if Fortran compiler supports (void*)-like +# functionality +# $1: pre-decl qualifier line -- likely a compiler directive +# $2: parameter type +# $3: message for AC-MSG-CHECKING +# $4: action to take if the test passes +# $5: action to take if the test fails +AC_DEFUN([OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB], [ + OPAL_VAR_SCOPE_PUSH(msg) + AC_LANG_PUSH([Fortran]) + AC_MSG_CHECKING([for Fortran compiler support of $3]) + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([],[[! +! Autoconf puts "program main" at the top + + interface + subroutine force_assumed_shape(a, count) + integer :: count + complex, dimension(:,:) :: a + end subroutine force_assumed_shape + end interface + + interface + subroutine foo(buffer, count) + $1 buffer + $2, intent(in) :: buffer + integer, intent(in) :: count + end subroutine foo + end interface + +! Simple interface with an un-typed first argument (e.g., a choice buffer) + integer :: count + real :: buffer1(3) + character :: buffer2 + complex :: buffer3(4,4) + complex, pointer, dimension(:,:) :: ptr + target :: buffer3 + integer :: buffer4 + ptr => buffer3 + +! Set some known values (somewhat irrelevant for this test, but just be +! sure that the values are initialized) + a = 17 + buffer1(1) = 4.5 + buffer1(2) = 6.7 + buffer1(3) = 8.9 + buffer2 = 'a' + +! Call with one type for the first argument + call foo(buffer1, count) +! Call with a different type for the first argument + call foo(buffer2, count) +! Force us through an assumed shape + call force_assumed_shape(buffer3, count) +! Force a pointer call through an assumed shape (!) + ptr => buffer3 +! Also try with a simple scalar integer +! (Intel 2016 compiler suite only partially supports GCC pragmas; +! they work with all the above buffer types, but fail with a +! simple scalar integer) + call foo(buffer4, count) + + end program + + subroutine force_assumed_shape(a, count) + integer :: count + real, dimension(:,:) :: a + call foo(a, count) + end subroutine force_assumed_shape + +! Autoconf puts "end" after the last line + subroutine bogus +]]), + [msg=yes + ompi_fortran_ignore_tkr_predecl="$1" + ompi_fortran_ignore_tkr_type="$2" + $4], + [msg=no + $5]) + AC_MSG_RESULT($msg) + AC_LANG_POP([Fortran]) + OPAL_VAR_SCOPE_POP +]) + diff --git a/config/ompi_fortran_check_interface.m4 b/config/ompi_fortran_check_interface.m4 new file mode 100644 index 00000000..bc18492b --- /dev/null +++ b/config/ompi_fortran_check_interface.m4 @@ -0,0 +1,51 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "interface" +# keyword or not. + +# OMPI_FORTRAN_CHECK_INTERFACE([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_INTERFACE],[ + AS_VAR_PUSHDEF([interface_var], [ompi_cv_fortran_interface]) + + AC_CACHE_CHECK([if Fortran compiler supports INTERFACE], interface_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[MODULE my_module +INTERFACE MPI_Foo +SUBROUTINE inky(a) + DOUBLE PRECISION A +END SUBROUTINE inky +SUBROUTINE blinky(a) + INTEGER A +END SUBROUTINE blinky +END INTERFACE MPI_Foo +END MODULE my_module]])], + [AS_VAR_SET(interface_var, yes)], + [AS_VAR_SET(interface_var, no)]) + touch conftest_foo.mod + rm -rf *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(interface_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([interface_var])dnl +]) diff --git a/config/ompi_fortran_check_iso_fortran_env.m4 b/config/ompi_fortran_check_iso_fortran_env.m4 new file mode 100644 index 00000000..4b967058 --- /dev/null +++ b/config/ompi_fortran_check_iso_fortran_env.m4 @@ -0,0 +1,42 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports iso_fortran_env or not +# +# OMPI_FORTRAN_CHECK_ISO_FORTRAN_ENV([action if found], [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_ISO_FORTRAN_ENV],[ + AS_VAR_PUSHDEF([iso_fortran_env_var], [ompi_cv_fortran_have_iso_fortran_env]) + + AC_CACHE_CHECK([if Fortran compiler supports ISO_FORTRAN_ENV], iso_fortran_env_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[program check_for_iso_fortran_env + use, intrinsic :: iso_fortran_env + real(real32) :: var + var = 12.34 +end program]])], + [AS_VAR_SET(iso_fortran_env_var, yes)], + [AS_VAR_SET(iso_fortran_env_var, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(iso_fortran_env_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([iso_fortran_env_var]) +]) diff --git a/config/ompi_fortran_check_logical_array.m4 b/config/ompi_fortran_check_logical_array.m4 new file mode 100644 index 00000000..7a6a6291 --- /dev/null +++ b/config/ompi_fortran_check_logical_array.m4 @@ -0,0 +1,122 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 The Trustees of the University of Tennessee. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_FORTRAN_CHECK_LOGICAL_ARRAY],[ + AS_VAR_PUSHDEF([logical_array_var], + [ompi_cv_fortran_logical_array_correct]) + + AC_CACHE_CHECK([for correct handling of Fortran logical arrays], + logical_array_var, + [if test "$1" = "none" || \ + test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \ + test $ompi_fortran_happy -eq 0; then + value=skipped + else + # Fortran module + cat > conftestf.f < conftest.c < +#include +#include "confdefs.h" + +#ifdef __cplusplus + extern "C" { +#endif +void ompi_check_f(ompi_fortran_logical_t * logical) +{ + int result = 0; + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + + if (logical[[0]] == 0 && + logical[[1]] == $ompi_cv_fortran_true_value) + result = 1; + fprintf(f, "%d\n", result); +} + +void ompi_check(ompi_fortran_logical_t * logical) +{ ompi_check_f(logical); } + +void ompi_check_(ompi_fortran_logical_t * logical) +{ ompi_check_f(logical); } + +void ompi_check__(ompi_fortran_logical_t * logical) +{ ompi_check_f(logical); } + +void OMPI_CHECK(ompi_fortran_logical_t * logical) +{ ompi_check_f(logical); } + +#ifdef __cplusplus +} +#endif +EOF + + # Try the compilation and run. Can't use AC_TRY_RUN + # because it's two module files. + OPAL_LOG_COMMAND([$CC $CFLAGS -I. -c conftest.c], + [OPAL_LOG_COMMAND([$FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS], + [happy=1], [happy=0])], + [happy=0]) + if test "$happy" = "0" ; then + AC_MSG_ERROR([Error determining if arrays of logical values work properly.]) + fi + + AS_IF([test "$cross_compiling" = "yes"], + [ # assume we're ok + value=yes], + [OPAL_LOG_COMMAND([./conftest], + [if test "`cat conftestval`" = "1" ; then + value=yes + else + value=no + fi], + [value=no])]) + fi + AS_VAR_SET(logical_array_var, [$value]) + ]) + + AS_VAR_COPY([ompi_fortran_logical_array_correct], [logical_array_var]) + if test "$ompi_fortran_logical_array_correct" = "no" ; then + AC_MSG_ERROR([Error determining if arrays of logical values work properly.]) + fi + AS_VAR_POPDEF([logical_array_var]) + + unset happy ompi_check_logical_fn + rm -rf conftest* +])dnl diff --git a/config/ompi_fortran_check_max_array_rank.m4 b/config/ompi_fortran_check_max_array_rank.m4 new file mode 100644 index 00000000..095b5b49 --- /dev/null +++ b/config/ompi_fortran_check_max_array_rank.m4 @@ -0,0 +1,69 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check the max array rank that the Fortran compiler supports. +# +# OMPI_FORTRAN_CHECK_MAX_ARRAY_RANK +# +# Sets $OMPI_FORTRAN_MAX_ARRAY_RANK, AC_SUBSTs it, and AC_DEFINEs +# OMPI_FORTRAN_MAX_ARRAY_RANK. +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_MAX_ARRAY_RANK],[ + AS_VAR_PUSHDEF([max_array_rank_var], [ompi_cv_fortran_max_array_rank]) + + OPAL_VAR_SCOPE_PUSH([f_max_rank f_fail f_rank f_i f_dim]) + AC_CACHE_CHECK([max supported Fortran array rank], max_array_rank_var, + [AC_LANG_PUSH([Fortran]) + f_max_rank=0 + f_fail=0 + + # Realistically, this will only be 7 or 15. But what the heck + # -- try them all. Note that we don't test above 15, because + # that's the max value from the F2008 spec (and some compilers + # will let you go above rank=16, e.g., Intel ifort). + for f_rank in 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do + if test $f_fail -eq 0; then + f_i=1 + f_dim=2 + while test `expr $f_i + 1` -le $f_rank; do + f_dim="$f_dim,2" + f_i=`expr $f_i + 1` + done + OPAL_LOG_MSG([testing Fortran dimension $f_rank / $f_dim]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[PROGRAM test_program + INTEGER, DIMENSION($f_dim) :: var + var($f_dim) = 3 +END PROGRAM test_program]])], + [f_max_rank=$f_rank], [f_fail=1]) + fi + done + AS_VAR_SET(max_array_rank_var, $f_max_rank) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_COPY([OMPI_FORTRAN_MAX_ARRAY_RANK], [max_array_rank_var]) + AC_SUBST(OMPI_FORTRAN_MAX_ARRAY_RANK) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_MAX_ARRAY_RANK], + [$OMPI_FORTRAN_MAX_ARRAY_RANK], + [Max dimension rank of Fortran arrays]) + + OPAL_VAR_SCOPE_POP + AS_VAR_POPDEF([max_array_rank_var])dnl +]) diff --git a/config/ompi_fortran_check_optional_args.m4 b/config/ompi_fortran_check_optional_args.m4 new file mode 100644 index 00000000..06bd55e2 --- /dev/null +++ b/config/ompi_fortran_check_optional_args.m4 @@ -0,0 +1,54 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "optional" +# keyword or not. + +# OMPI_FORTRAN_CHECK_OPTIONAL_ARGS([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_OPTIONAL_ARGS],[ + AS_VAR_PUSHDEF([optional_var], [ompi_cv_fortran_optional]) + + AC_CACHE_CHECK([if Fortran compiler supports optional arguments], optional_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[program check_for_optional + use, intrinsic :: iso_c_binding + + interface + subroutine check_op(i, ierror) + integer, intent(in), value :: i + integer, intent(out), optional :: ierror + end subroutine check_op + end interface + + integer :: ierror + + call check_op(0) + call check_op(1, ierror) +end program]])], + [AS_VAR_SET(optional_var, yes)], + [AS_VAR_SET(optional_var, no)]) + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(optional_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([optional_var])dnl +]) diff --git a/config/ompi_fortran_check_private.m4 b/config/ompi_fortran_check_private.m4 new file mode 100644 index 00000000..b9789b1d --- /dev/null +++ b/config/ompi_fortran_check_private.m4 @@ -0,0 +1,47 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "private" +# keyword in derived types or not. + +# OMPI_FORTRAN_CHECK_PRIVATE([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_PRIVATE],[ + AS_VAR_PUSHDEF([private_var], [ompi_cv_fortran_private]) + + AC_CACHE_CHECK([if Fortran compiler supports PRIVATE], private_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[module test_for_private + type :: derived_with_private + integer :: this_is_a_public_integer + integer, private :: this_is_a_private_integer + end type derived_with_private +end module test_for_private]])], + [AS_VAR_SET(private_var, yes)], + [AS_VAR_SET(private_var, no)]) + touch conftest_foo.mod + rm -rf *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(private_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([private_var])dnl +]) diff --git a/config/ompi_fortran_check_procedure.m4 b/config/ompi_fortran_check_procedure.m4 new file mode 100644 index 00000000..5ab68714 --- /dev/null +++ b/config/ompi_fortran_check_procedure.m4 @@ -0,0 +1,56 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "procedure" +# keyword in derived types or not. + +# OMPI_FORTRAN_CHECK_PROCEDURE([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_PROCEDURE],[ + AS_VAR_PUSHDEF([procedure_var], [ompi_cv_fortran_procedure]) + + AC_CACHE_CHECK([if Fortran compiler supports PROCEDURE], procedure_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[MODULE proc_mod +INTERFACE +SUBROUTINE MPI_User_function +END SUBROUTINE +END INTERFACE +END MODULE proc_mod + +PROGRAM test_proc +INTERFACE +SUBROUTINE binky(user_fn) + USE proc_mod + PROCEDURE(MPI_User_function) :: user_fn +END SUBROUTINE +END INTERFACE +END PROGRAM]])], + [AS_VAR_SET(procedure_var, yes)], + [AS_VAR_SET(procedure_var, no)]) + touch conftest_foo.mod + rm -rf *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(procedure_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([procedure_var])dnl +]) diff --git a/config/ompi_fortran_check_protected.m4 b/config/ompi_fortran_check_protected.m4 new file mode 100644 index 00000000..effdcd90 --- /dev/null +++ b/config/ompi_fortran_check_protected.m4 @@ -0,0 +1,44 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Check whether or not the Fortran compiler supports the "protected" +# keyword in derived types or not. + +# OMPI_FORTRAN_CHECK_PROTECTED([action if found], +# [action if not found]) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_PROTECTED],[ + AS_VAR_PUSHDEF([protected_var], [ompi_cv_fortran_protected]) + + AC_CACHE_CHECK([if Fortran compiler supports PROTECTED], protected_var, + [AC_LANG_PUSH([Fortran]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[module test_for_protected + integer, protected :: bogus +end module test_for_protected]])], + [AS_VAR_SET(protected_var, yes)], + [AS_VAR_SET(protected_var, no)]) + touch conftest_foo.mod + rm -rf *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(protected_var, [yes], [$1], [$2]) + AS_VAR_POPDEF([protected_var])dnl +]) diff --git a/config/ompi_fortran_check_real16_c_equiv.m4 b/config/ompi_fortran_check_real16_c_equiv.m4 new file mode 100644 index 00000000..447d2ce1 --- /dev/null +++ b/config/ompi_fortran_check_real16_c_equiv.m4 @@ -0,0 +1,156 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_FORTRAN_CHECK_REAL16_C_EQUIV +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_REAL16_C_EQUIV],[ + unset happy + OPAL_VAR_SCOPE_PUSH([happy define_value msg CFLAGS_save]) + AS_VAR_PUSHDEF([real16_matches_c_var], [ompi_cv_real16_c_equiv]) + + # We have to do this as a cache check for cross-compilation platforms + AC_CACHE_CHECK([for C type matching bit representation of REAL*16], + real16_matches_c_var, + [AS_IF([test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \ + test "$OMPI_HAVE_FORTRAN_REAL16" = "1"], + [ + # AC_CACHE_CHECK automatically does its own AC_MSG_CHECKING, so close it out + AC_MSG_RESULT([pending]) + + # First check the type that we found was the same length in C + AC_MSG_CHECKING([if $OMPI_FORTRAN_REAL16_C_TYPE == REAL*16]) + OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([$OMPI_FORTRAN_REAL16_C_TYPE], [L]) + # If that didn't work, see if we have a compiler-specific + # type that might work + AS_IF([test "$happy" = "no"], + [AC_MSG_RESULT([$happy]) + # Intel compiler has a special type that should work + AS_IF([test "$opal_cv_c_compiler_vendor" = "intel"], + [AC_MSG_CHECKING([if intel compiler _Quad == REAL*16]) + CFLAGS_save="$CFLAGS" + CFLAGS="$CFLAGS -Qoption,cpp,--extended_float_types" + OPAL_UNIQ([CFLAGS]) + OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([_Quad], [q]) + AS_IF([test "$happy" = "yes"], + [OMPI_FORTRAN_REAL16_C_TYPE="_Quad" + AC_MSG_RESULT([works!])], + [CFLAGS="$CFLAGS_save" + AC_MSG_RESULT([does not work])]) + ]) + AS_IF([test "$opal_cv_c_compiler_vendor" = "gnu" && test "$ac_cv_type___float128" = "yes"], + [AC_MSG_CHECKING([if gnu compiler __float128 == REAL*16]) + OPAL_UNIQ([CFLAGS]) + OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE([__float128], [q]) + AS_IF([test "$happy" = "yes"], + [OMPI_FORTRAN_REAL16_C_TYPE="__float128" + AC_MSG_RESULT([works!])], + [AC_MSG_RESULT([does not work])]) + ]) + # We have to [re-]print a new message here, because + # AC_CACHE_CHECK will automatically AC_MSG_RESULT + AC_MSG_CHECKING([for C type matching bit representation of REAL*16]) + ]) + AS_VAR_SET(real16_matches_c_var, [$happy]) + ],[ + # No fortran bindings or no REAL*16 + AS_IF([test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS"], + [msg="skipped (no Fortran MPI bindings)"], + [msg="skipped (no REAL*16)"]) + AS_VAR_SET(real16_matches_c_var, [$msg]) + ]) + ]) + + AS_VAR_COPY([ompi_real16_matches_c], [real16_matches_c_var]) + AS_VAR_POPDEF([real16_matches_c_var]) + + AS_IF([test "$ompi_real16_matches_c" = "yes"], + [define_value=1], + [define_value=0 + AC_MSG_WARN([MPI_REAL16 and MPI_COMPLEX32 support have been disabled])]) + AC_DEFINE_UNQUOTED([OMPI_REAL16_MATCHES_C], [$define_value], + [Whether Fortran REAL*16 matches the bit format of the equivalent C type]) + OPAL_VAR_SCOPE_POP +]) + + +# OMPI_FORTRAN_CHECK_REAL16_C_EQUIV_TYPE(type, suffix) +# ---------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_CHECK_REAL16_EQUIV_TYPE],[ + # C module + cat > conftest_c.c < +#include + +#ifdef __cplusplus +extern "C" { +#endif + +void c_backend($1 *a) { + $1 foo = 11; + FILE *fp = fopen("conftestval", "w"); + if (NULL == fp) exit(1); + foo = 1 / foo; + fprintf(fp, "%s\n", (foo == *a) ? "yes" : "no"); + fclose(fp); +} + +void C($1 *a) { c_backend(a); } +void c($1 *a) { c_backend(a); } +void c_($1 *a) { c_backend(a); } +/* JMS I'm pretty sure this one will never happen...? */ +void c__($1 *a) { c_backend(a); } +#ifdef __cplusplus +} +#endif +EOF + + # Fortran module + cat > conftest_f.f < aaa.f90 << EOF +MODULE aaa +INTEGER :: CMON(1) +COMMON/CMMON/CMON +INTEGER :: global_aaa +END MODULE aaa +EOF + cat > bbb.f90 << EOF +MODULE bbb +integer, bind(C, name="cmmon_") :: CMON +INTEGER :: global_bbb +END MODULE bbb +EOF + OPAL_LOG_COMMAND([$FC $FCFLAGS -c aaa.f90], + [OPAL_LOG_COMMAND([$FC $FCFLAGS -c bbb.f90], + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[PROGRAM test +USE aaa, ONLY : global_aaa +USE bbb, ONLY : global_bbb +implicit none +END PROGRAM]])], + [AS_VAR_SET(use_only_var, yes)], + [AS_VAR_SET(use_only_var, no)])], + [AS_VAR_SET(use_only_var, no)])], + [AS_VAR_SET(use_only_var, no)]) + rm -rf aaa.f90 aaa.o bbb.f90 bbb.o *.mod 2>/dev/null + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_IF(use_only_var, [yes], [$1], [$2]) + FCFLAGS=$FCFLAGS_save + OPAL_VAR_SCOPE_POP + AS_VAR_POPDEF([use_only_var])dnl +]) diff --git a/config/ompi_fortran_find_ext_symbol_convention.m4 b/config/ompi_fortran_find_ext_symbol_convention.m4 new file mode 100644 index 00000000..c073f844 --- /dev/null +++ b/config/ompi_fortran_find_ext_symbol_convention.m4 @@ -0,0 +1,143 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +AC_DEFUN([OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION], [ + AC_REQUIRE([AC_PROG_NM]) + AC_REQUIRE([AC_PROG_GREP]) + OPAL_VAR_SCOPE_PUSH([FCFLAGS_NEW LDFLAGS_NEW FLAG]) + + # invalidate cache if result came from a run where FORTRAN was disabled + if test "$ompi_cv_fortran_external_symbol" = "skipped" ; then + unset ompi_cv_fortran_external_symbol + fi + + AC_CACHE_CHECK([$FORTRAN external symbol convention], + [ompi_cv_fortran_external_symbol], + [if test "$FC" = "none" || \ + test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS"; then + ompi_cv_fortran_external_symbol="skipped" + else + cat >conftest.f </dev/null 2>&1 ; then + ompi_cv_fortran_external_symbol="double underscore" + elif $NM conftest.o | $GREP foo_bar_ >/dev/null 2>&1 ; then + ompi_cv_fortran_external_symbol="single underscore" + elif $NM conftest.o | $GREP FOO_bar >/dev/null 2>&1 ; then + ompi_cv_fortran_external_symbol="mixed case" + elif $NM conftest.o | $GREP foo_bar >/dev/null 2>&1 ; then + ompi_cv_fortran_external_symbol="no underscore" + elif $NM conftest.o | $GREP FOO_BAR >/dev/null 2>&1 ; then + ompi_cv_fortran_external_symbol="upper case" + else + $NM conftest.o >conftest.out 2>&1 + OPAL_LOG_MSG([Could not determine Fortran naming convention. Output from $NM:]) + OPAL_LOG_FILE([conftest.out]) + happy=0 + fi], + [AC_MSG_ERROR([Fortran compiler did not produce object file])]) + fi]) + + # These values were all already set to 0 back up in + # ompi_setup_mpi_fortran.m4, because this whole macro is + # conditionally executed (i.e., it is not executed in the + # --disable-mpi-fortran case). + if test "$ompi_cv_fortran_external_symbol" = "double underscore" ; then + ompi_fortran_double_underscore=1 + elif test "$ompi_cv_fortran_external_symbol" = "single underscore" ; then + ompi_fortran_single_underscore=1 + elif test "$ompi_cv_fortran_external_symbol" = "mixed case" ; then + ompi_fortran_caps=1 + elif test "$ompi_cv_fortran_external_symbol" = "no underscore" ; then + ompi_fortran_plain=1 + elif test "$ompi_cv_fortran_external_symbol" = "upper case" ; then + ompi_fortran_caps=1 + elif test "$ompi_cv_fortran_external_symbol" != "skipped" ; then + AC_MSG_ERROR([unknown naming convention: $ompi_cv_fortran_external_symbol]) + fi + + OPAL_VAR_SCOPE_POP + rm -rf conftest.* +])dnl + + +AC_DEFUN([OMPI_FORTRAN_MAKE_C_FUNCTION], [ + if test "$ompi_cv_fortran_external_symbol" = "double underscore" ; then + # so the general rule is that if there is an _ in the function + # name, then there are two trailing underscores. Otherwise, + # there is only one trailing underscore. Any idea how to do + # that with m4_translit? + if echo $2 | $GREP _ >/dev/null 2>&1 ; then + $1[=]m4_translit([$2], [A-Z], [a-z])[__] + else + $1[=]m4_translit([$2], [A-Z], [a-z])[_] + fi + elif test "$ompi_cv_fortran_external_symbol" = "single underscore" ; then + $1[=]m4_translit([$2], [A-Z], [a-z])[_] + elif test "$ompi_cv_fortran_external_symbol" = "mixed case" ; then + $1[=]$2 + elif test "$ompi_cv_fortran_external_symbol" = "no underscore" ; then + $1[=]m4_translit([$2], [A-Z], [a-z]) + elif test "$ompi_cv_fortran_external_symbol" = "upper case" ; then + $1[=]m4_translit([$2], [a-z], [A-Z]) + else + AC_MSG_ERROR([unknown naming convention: $ompi_cv_fortran_external_symbol]) + fi +]) diff --git a/config/ompi_fortran_find_module_include_flag.m4 b/config/ompi_fortran_find_module_include_flag.m4 new file mode 100644 index 00000000..5b6e0deb --- /dev/null +++ b/config/ompi_fortran_find_module_include_flag.m4 @@ -0,0 +1,83 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# +# Sets and AC_SUBST's OMPI_FC_MODULE_FLAG. +# +# OMPI_FORTRAN_FIND_MODULE_INCLUDE_FLAG([action if found], [action if not found] +AC_DEFUN([OMPI_FORTRAN_FIND_MODULE_INCLUDE_FLAG],[ + AS_VAR_PUSHDEF([fortran_inc_var], [ompi_cv_fortran_module_include_flag]) + + OMPI_FC_MODULE_FLAG= + AC_CACHE_CHECK([for Fortran compiler module include flag], + fortran_inc_var, + [ofi_possible_flags="-I -p -M" + mkdir conftest.$$ + cd conftest.$$ + + # Try to compile a Fortran module + mkdir subdir + cd subdir + cat > conftest-module.f90 < conftest.f90 < conftestf.f < conftest.c < +#include +$ompi_conftest_h + +#ifdef __cplusplus +extern "C" { +#endif +void $ompi_ac_align_fn(char *w, char *x, char *y, char *z) +{ unsigned long aw, ax, ay, az; + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + aw = (unsigned long) w; + ax = (unsigned long) x; + ay = (unsigned long) y; + az = (unsigned long) z; + if (! ((aw%16)||(ax%16)||(ay%16)||(az%16))) fprintf(f, "%d\n", 16); + else if (! ((aw%12)||(ax%12)||(ay%12)||(az%12))) fprintf(f, "%d\n", 12); + else if (! ((aw%8)||(ax%8)||(ay%8)||(az%8))) fprintf(f, "%d\n", 8); + else if (! ((aw%4)||(ax%4)||(ay%4)||(az%4))) fprintf(f, "%d\n", 4); + else if (! ((aw%2)||(ax%2)||(ay%2)||(az%2))) fprintf(f, "%d\n", 2); + else fprintf(f, "%d\n", 1); + fclose(f); +} +#ifdef __cplusplus +} +#endif +EOF + + OPAL_LOG_COMMAND([$CC $CFLAGS -I. -c conftest.c], + [OPAL_LOG_COMMAND([$FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS], + [happy="yes"], [happy="no"])], [happy="no"]) + + if test "$happy" = "no" ; then + AC_MSG_RESULT([Error!]) + AC_MSG_ERROR([Could not determine alignment of $1]) + fi + + AS_IF([test "$cross_compiling" = "yes"], + [AC_MSG_RESULT([Error!]) + AC_MSG_ERROR([Can not determine alignment of $1 when cross-compiling])], + [OPAL_LOG_COMMAND([./conftest], + [AS_VAR_SET(type_var, [`cat conftestval`])], + [AC_MSG_RESULT([Error!]) + AC_MSG_ERROR([Could not determine alignment of $1])])]) + rm -rf conftest*]) + + AS_VAR_COPY([$2], [type_var]) + AS_VAR_POPDEF([type_var])dnl + OPAL_VAR_SCOPE_POP +]) + +# OMPI_FORTRAN_F08_GET_HANDLE_ALIGNMENT(type, variable to set) +# ------------------------------------------ +AC_DEFUN([OMPI_FORTRAN_F08_GET_HANDLE_ALIGNMENT],[ + # Use of m4_translit suggested by Eric Blake: + # http://lists.gnu.org/archive/html/bug-autoconf/2010-10/msg00016.html + AS_VAR_PUSHDEF([type_var], + m4_translit([[ompi_cv_fortran_alignment_$1]], [*], [p])) + + AC_CACHE_CHECK([alignment of Fortran $1], type_var, + [AC_LANG_PUSH([Fortran]) + AC_LINK_IFELSE([AC_LANG_SOURCE([[module alignment_mod +type, BIND(C) :: test_mpi_handle + integer :: MPI_VAL +end type test_mpi_handle +type(test_mpi_handle) :: t1 +type(test_mpi_handle) :: t2 +end module + +program falignment + use alignment_mod + OPEN(UNIT=10, FILE="conftestval") + if (LOC(t1) > LOC(t2)) then + write (10,'(I5)') LOC(t1)-LOC(t2) + else + write (10,'(I5)') LOC(t2)-LOC(t1) + endif + CLOSE(10) + +end program]])], + [AS_IF([test "$cross_compiling" = "yes"], + [AC_MSG_ERROR([Can not determine alignment of $1 when cross-compiling])], + [OPAL_LOG_COMMAND([./conftest], + [AS_VAR_SET(type_var, [`cat conftestval`])], + [AC_MSG_ERROR([Could not determine alignment of $1])])])], + + [AC_MSG_WARN([Could not determine alignment of $1]) + AC_MSG_WARN([See config.log for details]) + AC_MSG_ERROR([Cannot continue])]) + rm -rf conftest* *.mod 2> /dev/null + AC_LANG_POP([Fortran])]) + + AS_VAR_COPY([$2], [type_var]) + AS_VAR_POPDEF([type_var])dnl +])dnl diff --git a/config/ompi_fortran_get_handle_max.m4 b/config/ompi_fortran_get_handle_max.m4 new file mode 100644 index 00000000..819d40a3 --- /dev/null +++ b/config/ompi_fortran_get_handle_max.m4 @@ -0,0 +1,86 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_FORTRAN_GET_HANDLE_MAX() +# --------------------------------------------------------------- +# Find the maximum value of fortran integers, then calculate +# min(INT_MAX, max fortran INTEGER). This represents the maximum +# number of fortran MPI handle index. +AC_DEFUN([OMPI_FORTRAN_GET_HANDLE_MAX],[ + AS_VAR_PUSHDEF([fortran_handle_max_var], + [ompi_cv_fortran_handle_max]) + + AC_CACHE_CHECK([for max Fortran MPI handle index], + fortran_handle_max_var, + [ # Find max fortran INTEGER value. Set to sentinel value if we don't + # have a Fortran compiler (e.g., if --disable-fortran was given). + if test $ompi_fortran_happy -eq 0; then + ompi_fint_max=0 + else + OPAL_COMPUTE_MAX_VALUE([$OMPI_SIZEOF_FORTRAN_INTEGER], [ompi_fint_max]) + fi + + # Get INT_MAX. Compute a SWAG if we are cross compiling or something + # goes wrong. + rm -f conftest.out >/dev/null 2>&1 + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +]],[[FILE *fp = fopen("conftest.out", "w"); +long cint = INT_MAX; +fprintf(fp, "%ld", cint); +fclose(fp);]])], + [ompi_cint_max=`cat conftest.out`], + [ompi_cint_max=0], + [ #cross compiling is fun. compute INT_MAX same as INTEGER max + OPAL_COMPUTE_MAX_VALUE([$ac_cv_sizeof_int], [ompi_cint_max])]) + + # Use string comparisons with "test"; see comment above for + # rationale. + if test "$ompi_cint_max" = "0" ; then + # wow - something went really wrong. Be conservative + value=32767 + elif test "$ompi_fint_max" = "0" ; then + # we aren't compiling Fortran - just set it to C INT_MAX + value=$ompi_cint_max + else + # Take the lesser of C INT_MAX and Fortran INTEGER max. + # The resulting value will then be storable in either + # type. Use expr (instead of "test -lt"), because it can + # handle 8-byte integer values. + value=$ompi_fint_max + if test "`expr $ompi_cint_max \< $value`" = "1"; then + value=$ompi_cint_max + fi + fi + AS_VAR_SET(fortran_handle_max_var, [$value]) + rm -f conftest.out > /dev/null 2>&1 + unset value]) + + AS_VAR_COPY([ompi_fortran_handle_max], [fortran_handle_max_var]) + # sanity check; OMPI gets very unhappy if this value is negative... + if test 0 -ne `expr $ompi_fortran_handle_max \< 0` ; then + AC_MSG_ERROR([Detected negative max handle size.]) + fi + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HANDLE_MAX], + [$ompi_fortran_handle_max], + [Max handle value for fortran MPI handles, effectively min(INT_MAX, max fortran INTEGER value)]) + AS_VAR_POPDEF([fortran_handle_max_var]) +])dnl diff --git a/config/ompi_fortran_get_kind_value.m4 b/config/ompi_fortran_get_kind_value.m4 new file mode 100644 index 00000000..fb476596 --- /dev/null +++ b/config/ompi_fortran_get_kind_value.m4 @@ -0,0 +1,101 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_FORTRAN_GET_KIND_VALUE(kind, decimal range, variable to set) +# ----------------------------------------------------------------- +AC_DEFUN([OMPI_FORTRAN_GET_KIND_VALUE],[ + # Use of m4_translit suggested by Eric Blake: + # http://lists.gnu.org/archive/html/bug-autoconf/2010-10/msg00016.html + AS_VAR_PUSHDEF([kind_value_var], + m4_translit([[ompi_cv_fortran_kind_value_$1]], [*], [p])) + + rm -f conftest.out + AC_CACHE_CHECK([KIND value of Fortran $1], kind_value_var, + [if test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \ + test $ompi_fortran_happy -eq 0; then + value=skipped + else + AC_LANG_PUSH([Fortran]) + value= + AC_RUN_IFELSE(AC_LANG_PROGRAM(, [[ + use, intrinsic :: ISO_C_BINDING + open(unit = 7, file = "conftest.out") + write(7, *) $1 + close(7) +]]), [value=`cat conftest.out | awk '{print [$]1}'`], [value=no], [value=cross]) + rm -f conftest.out + fi + + # If the compiler is ancient enough to not support the + # ISO_C_BINDING stuff, then we have to fall back to older + # tests. Yuck. + AS_IF([test "$value" = "no"], + [AC_MSG_RESULT([no ISO_C_BINDING -- fallback]) + _OMPI_FORTRAN_SELECTED_INT_KIND($2, value)]) + + AS_IF([test "$value" = "no"], + [AC_MSG_WARN([Could not determine KIND value of $1]) + AC_MSG_WARN([See config.log for more details]) + AC_MSG_ERROR([Cannot continue])]) + + AS_IF([test "$value" = "cross"], + [AC_MSG_ERROR([Can not determine KIND value of $1 when cross-compiling])]) + + AS_VAR_SET(kind_value_var, [$value]) + AC_LANG_POP([Fortran]) + unset value + ]) + + AS_VAR_COPY([$3], [kind_value_var]) + AS_VAR_POPDEF([kind_value_var]) +])dnl + +# _OMPI_FORTRAN_SELECTED_INT_KIND(decimal range, variable to set) +# ----------------------------------------------------------------- +AC_DEFUN([_OMPI_FORTRAN_SELECTED_INT_KIND],[ + AS_VAR_PUSHDEF([sel_int_kind_var], [ompi_cv_fortran_int_kind_$1]) + AC_CACHE_CHECK([Fortran value of selected_int_kind($1)], sel_int_kind_var, + [outval=no + + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS && \ + test $ompi_fortran_happy -eq 1], + [rm -f conftest.out + AC_LANG_PUSH([Fortran]) + AC_RUN_IFELSE(AC_LANG_PROGRAM(, [[ + open(8, file="conftest.out") + write(8, fmt="(I5)") selected_int_kind($1) + close(8) +]]), [outval=`cat conftest.out | awk '{print [$]1}'`], [outval=no], [outval=cross]) + rm -f conftest.out + AC_LANG_POP([Fortran]) + ]) + + AS_VAR_SET(sel_int_kind_var, [$outval]) + unset outval + ]) + + # All analysis of $value is done in the upper-level / calling + # macro + + AS_VAR_COPY([$2], [sel_int_kind_var]) + AS_VAR_POPDEF([sel_int_kind_var])dnl +]) diff --git a/config/ompi_fortran_get_sizeof.m4 b/config/ompi_fortran_get_sizeof.m4 new file mode 100644 index 00000000..e25d982c --- /dev/null +++ b/config/ompi_fortran_get_sizeof.m4 @@ -0,0 +1,90 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OMPI_FORTRAN_GET_SIZEOF(prologue, type, variable to set) +# ------------------------------------------ +AC_DEFUN([OMPI_FORTRAN_GET_SIZEOF],[ + # Use of m4_translit suggested by Eric Blake: + # http://lists.gnu.org/archive/html/bug-autoconf/2010-10/msg00016.html + AS_VAR_PUSHDEF([type_var], + m4_translit([[ompi_cv_fortran_sizeof_$2]], [*], [p])) + + AC_CACHE_CHECK([size of Fortran $2], type_var, + [OMPI_FORTRAN_MAKE_C_FUNCTION([ompi_ac_size_fn], [size]) + # Fortran module + cat > conftestf.f90 < conftest.c < +#include +$ompi_conftest_h + +#ifdef __cplusplus +extern "C" { +#endif +void $ompi_ac_size_fn(char *a, char *b) +{ + int diff = (int) (b - a); + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, "%d\n", diff); +} +#ifdef __cplusplus +} +#endif +EOF + + OPAL_LOG_COMMAND([$CC $CFLAGS -I. -c conftest.c], + [OPAL_LOG_COMMAND([$FC $FCFLAGS $FCFLAGS_f90 conftestf.f90 conftest.o -o conftest $LDFLAGS $LIBS], + [happy="yes"], [happy="no"])], [happy="no"]) + + if test "$happy" = "no" ; then + OPAL_LOG_MSG([here is the Fortran program:], 1) + OPAL_LOG_FILE([conftestf.f90]) + AC_MSG_WARN([Could not determine size of $2]) + AC_MSG_WARN([See config.log for details]) + AC_MSG_ERROR([Cannot continue]) + fi + + AS_IF([test "$cross_compiling" = "yes"], + [AC_MSG_ERROR([Can not determine size of $2 when cross-compiling])], + [OPAL_LOG_COMMAND([./conftest], + [AS_VAR_SET(type_var, [`cat conftestval`])], + [AC_MSG_ERROR([Could not determine size of $2])])]) + + unset happy ompi_conftest_h + rm -rf conftest*]) + + AS_VAR_COPY([$3], [type_var]) + AS_VAR_POPDEF([type_var])dnl +])dnl diff --git a/config/ompi_fortran_get_value_true.m4 b/config/ompi_fortran_get_value_true.m4 new file mode 100644 index 00000000..180d62c8 --- /dev/null +++ b/config/ompi_fortran_get_value_true.m4 @@ -0,0 +1,134 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 The Trustees of the University of Tennessee. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +# OMPI_FORTRAN_GET_VALUE_TRUE() +# ------------------------------------------------------- +# Determine the value of .TRUE. of this Fortran compiler. +AC_DEFUN([OMPI_FORTRAN_GET_VALUE_TRUE],[ + # invalidate cache if result came from a run where FORTRAN was disabled + if test "$ompi_cv_fortran_true_value" = "0" ; then + unset ompi_cv_fortran_true_value + fi + + AS_VAR_PUSHDEF([fortran_true_var], + [ompi_cv_fortran_true_value]) + + AC_CACHE_CHECK([Fortran value for .TRUE. logical type], + fortran_true_var, + [if test "$1" = "none" || \ + test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \ + test $ompi_fortran_happy -eq 0 ; then + value=77 + else + # + # C module + # We really need the confdefs.h Header file for + # the ompi_fortran_logical_t definition + # + if test \! -f confdefs.h ; then + AC_MSG_WARN([*** Problem running configure test!]) + AC_MSG_WARN([*** Cannot find confdefs.h file for config test]) + AC_MSG_WARN([*** See config.log for details.]) + AC_MSG_ERROR([*** Cannot continue.]) + fi + + cat > conftest.c < +#include +#include "confdefs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void ompi_print_f(ompi_fortran_logical_t * logical) +{ + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + + if( SIZEOF_INT >= sizeof(ompi_fortran_logical_t) ) { + fprintf(f, "%d\n", (int)*logical); + } else if (SIZEOF_LONG >= sizeof(ompi_fortran_logical_t) ) { + fprintf(f, "%ld\n", (long) *logical); +#ifdef HAVE_LONG_LONG + } else if (SIZEOF_LONG_LONG >= sizeof(ompi_fortran_logical_t) ) { + fprintf(f, "%lld\n", (long long) *logical); +#endif + } else { + exit(1); + } +} + +void ompi_print(ompi_fortran_logical_t *logical) +{ ompi_print_f(logical); } + +void ompi_print_(ompi_fortran_logical_t *logical) +{ ompi_print_f(logical); } + +void ompi_print__(ompi_fortran_logical_t *logical) +{ ompi_print_f(logical); } + +void OMPI_PRINT(ompi_fortran_logical_t *logical) +{ ompi_print_f(logical); } + +#ifdef __cplusplus +} +#endif +EOF + cat > conftestf.f < + int main() { + LONG dest = 1, exchange = 0, comperand = 1; + SetErrorMode(SEM_FAILCRITICALERRORS); + InterlockedCompareExchange( &dest, exchange, comperand ); + return (int)dest; + }], + [AC_MSG_RESULT(yes) + ompi_windows_have_support_for_32_bits_atomic=1], + [AC_MSG_RESULT(no) + ompi_windows_have_support_for_32_bits_atomic=0]) + AC_DEFINE_UNQUOTED(HAVE_INTERLOCKEDCOMPAREEXCHANGE, + $ompi_windows_have_support_for_32_bits_atomic, + [Whether we support 32 bits atomic operations on Windows]) + + AC_MSG_CHECKING(for working InterlockedCompareExchangeAcquire) + AC_TRY_RUN( [#include + int main() { + LONG dest = 1, exchange = 0, comperand = 1; + SetErrorMode(SEM_FAILCRITICALERRORS); + InterlockedCompareExchangeAcquire( &dest, exchange, comperand ); + return (int)dest; + }], + [AC_MSG_RESULT(yes) + ompi_windows_have_support_for_32_bits_atomic=1], + [AC_MSG_RESULT(no) + ompi_windows_have_support_for_32_bits_atomic=0]) + AC_DEFINE_UNQUOTED(HAVE_INTERLOCKEDCOMPAREEXCHANGEACQUIRE, + $ompi_windows_have_support_for_32_bits_atomic, + [Whether we support 32 bits atomic operations on Windows]) + + AC_MSG_CHECKING(for working InterlockedCompareExchangeRelease) + AC_TRY_RUN( [#include + int main() { + LONG dest = 1, exchange = 0, comperand = 1; + SetErrorMode(SEM_FAILCRITICALERRORS); + InterlockedCompareExchangeRelease( &dest, exchange, comperand ); + return (int)dest; + }], + [AC_MSG_RESULT(yes) + ompi_windows_have_support_for_32_bits_atomic=1], + [AC_MSG_RESULT(no) + ompi_windows_have_support_for_32_bits_atomic=0]) + AC_DEFINE_UNQUOTED(HAVE_INTERLOCKEDCOMPAREEXCHANGERELEASE, + $ompi_windows_have_support_for_32_bits_atomic, + [Whether we support 32 bits atomic operations on Windows]) + + AC_MSG_CHECKING(for working InterlockedCompareExchange64) + AC_TRY_RUN( [#include + int main() { + LONGLONG dest = 1, exchange = 0, comperand = 1; + SetErrorMode(SEM_FAILCRITICALERRORS); + InterlockedCompareExchange64( &dest, exchange, comperand ); + return (int)dest; + }], + [AC_MSG_RESULT(yes) + ompi_windows_have_support_for_64_bits_atomic=1], + [AC_MSG_RESULT(no) + ompi_windows_have_support_for_64_bits_atomic=0]) + AC_DEFINE_UNQUOTED(HAVE_INTERLOCKEDCOMPAREEXCHANGE64, + $ompi_windows_have_support_for_64_bits_atomic, + [Whether we support 64 bits atomic operations on Windows]) + + opal_show_title "Windows Type tests" + + AC_DEFINE([pid_t], [intptr_t], [Windows pid_t type is a pointer]) + AC_DEFINE_UNQUOTED([SIZEOF_PID_T], $ac_cv_sizeof_int, + [and here is it's size]) + + LDFLAGS="$SAVE_LDFLAGS" +fi + +]) diff --git a/config/ompi_setup_contrib.m4 b/config/ompi_setup_contrib.m4 new file mode 100644 index 00000000..58c470ef --- /dev/null +++ b/config/ompi_setup_contrib.m4 @@ -0,0 +1,29 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. +# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AC_DEFUN([OMPI_SETUP_CONTRIB],[ + opal_show_title "Contributed software setup" + + OMPI_CONTRIB +]) diff --git a/config/ompi_setup_cxx.m4 b/config/ompi_setup_cxx.m4 new file mode 100644 index 00000000..dc09d09d --- /dev/null +++ b/config/ompi_setup_cxx.m4 @@ -0,0 +1,454 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2006 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2007-2009 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# This macro is necessary to get the title to be displayed first. :-) +AC_DEFUN([OMPI_SETUP_CXX_BANNER],[ + opal_show_subtitle "C++ compiler and preprocessor" +]) + +# This macro is necessary because PROG_CXX* is REQUIREd by multiple +# places in SETUP_CXX. +AC_DEFUN([OMPI_PROG_CXX],[ + OPAL_VAR_SCOPE_PUSH([ompi_cxxflags_save]) + ompi_cxxflags_save="$CXXFLAGS" + AC_PROG_CXX + AC_PROG_CXXCPP + CXXFLAGS="$ompi_cxxflags_save" + OPAL_VAR_SCOPE_POP +]) + +# OMPI_SETUP_CXX() +# ---------------- +# Do everything required to setup the C++ compiler. Safe to AC_REQUIRE +# this macro. +AC_DEFUN([OMPI_SETUP_CXX],[ + AC_REQUIRE([OMPI_SETUP_CXX_BANNER]) + + _OMPI_SETUP_CXX_COMPILER + + _OMPI_CXX_CHECK_EXCEPTIONS + + AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"], + [OMPI_CXX_FIND_TEMPLATE_REPOSITORY + OMPI_CXX_FIND_TEMPLATE_PARAMETERS + OPAL_CHECK_IDENT([CXX], [CXXFLAGS], [cc], [C++])]) + + _OMPI_CXX_CHECK_BUILTIN + + _OMPI_CXX_CHECK_2D_CONST_CAST + + AM_CONDITIONAL(OMPI_BUILD_MPI_CXX_BINDINGS, [test "$WANT_MPI_CXX_SUPPORT" = 1]) + AC_DEFINE_UNQUOTED(OMPI_BUILD_CXX_BINDINGS, $WANT_MPI_CXX_SUPPORT, + [Whether we want MPI C++ support or not]) +]) + +# _OMPI_SETUP_CXX_COMPILER() +# -------------------------- +# Setup the CXX compiler +AC_DEFUN([_OMPI_SETUP_CXX_COMPILER],[ + OPAL_VAR_SCOPE_PUSH(ompi_cxx_compiler_works) + + # There's a few cases here: + # + # 1. --enable-mpi-cxx was supplied: error if we don't find a C++ + # compiler + # 2. --disable-mpi-cxx was supplied: check for a C++ compiler anyway + # (so we can have a functional mpic++ wrapper compiler), but + # don't error if we don't find one. + # 3. neither was specified: same was #2 + # + # Then only proceed to do all the rest of the C++ checks if we + # both found a c++ compiler and want the C++ bindings (i.e., either + # case #1 or #3) + + # Must REQUIRE the PROG_CXX macro and not call it directly here for + # reasons well-described in the AC2.64 (and beyond) docs. + AC_REQUIRE([OMPI_PROG_CXX]) + BASECXX="`basename $CXX`" + + AS_IF([test "x$CXX" = "x"], [CXX=none]) + set dummy $CXX + ompi_cxx_argv0=[$]2 + OPAL_WHICH([$ompi_cxx_argv0], [OMPI_CXX_ABSOLUTE]) + AS_IF([test "x$OMPI_CXX_ABSOLUTE" = "x"], [OMPI_CXX_ABSOLUTE=none]) + + AC_DEFINE_UNQUOTED(OMPI_CXX, "$CXX", [OMPI underlying C++ compiler]) + AC_SUBST(OMPI_CXX_ABSOLUTE) + + # Make sure that the C++ compiler both works and is actually a C++ + # compiler (if not cross-compiling). Don't just use the AC macro + # so that we can have a pretty message. Do something here that + # should force the linking of C++-specific things (e.g., STL + # strings) so that we can force a hard check of compiling, + # linking, and running a C++ application. Note that some C + # compilers, such as at least some versions of the GNU and Intel + # compilers, will detect that the file extension is ".cc" and + # therefore switch into a pseudo-C++ personality which works for + # *compiling*, but does not work for *linking*. So in this test, + # we want to cover the entire spectrum (compiling, linking, + # running). Note that it is not a fatal error if the C++ compiler + # does not work unless the user specifically requested the C++ + # bindings. + AS_IF([test "$CXX" = "none"], + [ompi_cxx_compiler_works=no], + [AS_IF([test "$ompi_cv_cxx_compiler_vendor" = "microsoft" ], + [ompi_cxx_compiler_works=yes], + [OPAL_CHECK_COMPILER_WORKS([C++], [#include +], + [std::string foo = "Hello, world"], + [ompi_cxx_compiler_works=yes], + [ompi_cxx_compiler_works=no])])]) + + AS_IF([test "$ompi_cxx_compiler_works" = "yes"], + [_OMPI_SETUP_CXX_COMPILER_BACKEND], + [AS_IF([test "$enable_mpi_cxx" = "yes"], + [AC_MSG_WARN([Could not find functional C++ compiler, but]) + AC_MSG_WARN([support for the C++ MPI bindings was requested.]) + AC_MSG_ERROR([Cannot continue])], + [WANT_MPI_CXX_SUPPORT=0])]) + + AC_MSG_CHECKING([if able to build the MPI C++ bindings]) + AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AS_IF([test "$enable_mpi_cxx" = "yes"], + [AC_MSG_WARN([MPI C++ binding support requested but not delivered]) + AC_MSG_ERROR([Cannot continue])])]) + + AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"], + [OPAL_CXX_COMPILER_VENDOR([ompi_cxx_vendor])]) + OPAL_VAR_SCOPE_POP +]) + +# _OMPI_SETUP_CXX_COMPILER_BACKEND() +# ---------------------------------- +# Back end of _OMPI_SETUP_CXX_COMPILER_BACKEND() +AC_DEFUN([_OMPI_SETUP_CXX_COMPILER_BACKEND],[ + # Do we want code coverage + if test "$WANT_COVERAGE" = "1" && test "$WANT_MPI_CXX_SUPPORT" = "1"; then + if test "$ompi_cxx_vendor" = "gnu" ; then + AC_MSG_WARN([$OMPI_COVERAGE_FLAGS has been added to CFLAGS (--enable-coverage)]) + WANT_DEBUG=1 + CXXFLAGS="${CXXFLAGS} $OMPI_COVERAGE_FLAGS" + OPAL_WRAPPER_FLAGS_ADD([CXXFLAGS], [$OMPI_COVERAGE_FLAGS]) + else + AC_MSG_WARN([Code coverage functionality is currently available only with GCC suite]) + AC_MSG_ERROR([Configure: cannot continue]) + fi + fi + + # Do we want debugging? + if test "$WANT_DEBUG" = "1" && test "$enable_debug_symbols" != "no" ; then + CXXFLAGS="$CXXFLAGS -g" + OPAL_FLAGS_UNIQ(CXXFLAGS) + AC_MSG_WARN([-g has been added to CXXFLAGS (--enable-debug)]) + fi + + # These flags are generally g++-specific; even the g++-impersonating + # compilers won't accept them. + OMPI_CXXFLAGS_BEFORE_PICKY="$CXXFLAGS" + if test "$WANT_PICKY_COMPILER" = 1 && test "$ompi_cxx_vendor" = "gnu"; then + add="-Wall -Wundef -Wno-long-long" + + # see if -Wno-long-double works... + AC_LANG_PUSH(C++) + CXXFLAGS_orig="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $add -Wno-long-double -fstrict-prototype" + AC_CACHE_CHECK([if $CXX supports -Wno-long-double], + [ompi_cv_cxx_wno_long_double], + [AC_TRY_COMPILE([], [], + [dnl Alright, the -Wno-long-double did not produce any errors... + dnl Well well, try to extract a warning regarding unrecognized or ignored options + AC_TRY_COMPILE([], [long double test;], + [ + ompi_cv_cxx_wno_long_double="yes" + if test -s conftest.err ; then + dnl Yes, it should be "ignor", in order to catch ignoring and ignore + for i in invalid ignor unrecognized ; do + $GREP -iq $i conftest.err + if test "$?" = "0" ; then + ompi_cv_cxx_wno_long_double="no", + break; + fi + done + fi + ], + [ompi_cv_cxx_wno_long_double="no"])], + [ompi_cv_cxx_wno_long_double="no"])]) + CXXFLAGS="$CXXFLAGS_orig" + AC_LANG_POP(C++) + if test "$ompi_cv_cxx_wno_long_double" = "yes" ; then + add="$add -Wno-long-double" + fi + + CXXFLAGS="$CXXFLAGS $add" + OPAL_FLAGS_UNIQ(CXXFLAGS) + if test "$add" != "" ; then + AC_MSG_WARN([$add has been added to CXXFLAGS (--enable-picky)]) + fi + unset add + fi + + # See if this version of g++ allows -finline-functions + if test "$GXX" = "yes"; then + CXXFLAGS_orig="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -finline-functions" + add= + AC_LANG_PUSH(C++) + AC_CACHE_CHECK([if $CXX supports -finline-functions], + [ompi_cv_cxx_finline_functions], + [AC_TRY_COMPILE([], [], + [ompi_cv_cxx_finline_functions="yes"], + [ompi_cv_cxx_finline_functions="no"])]) + AC_LANG_POP(C++) + if test "$ompi_cv_cxx_finline_functions" = "yes" ; then + add=" -finline-functions" + fi + CXXFLAGS="$CXXFLAGS_orig$add" + OPAL_FLAGS_UNIQ(CXXFLAGS) + if test "$add" != "" ; then + AC_MSG_WARN([$add has been added to CXXFLAGS]) + fi + unset add + fi + + # Make sure we can link with the C compiler + if test "$ompi_cv_cxx_compiler_vendor" != "microsoft"; then + OPAL_LANG_LINK_WITH_C([C++], [], + [cat <&2 +********************************************************************** +* It appears that your C++ compiler is unable to link against object +* files created by your C compiler. This generally indicates either +* a conflict between the options specified in CFLAGS and CXXFLAGS +* or a problem with the local compiler installation. More +* information (including exactly what command was given to the +* compilers and what error resulted when the commands were executed) is +* available in the config.log file in this directory. +********************************************************************** +EOF + AC_MSG_ERROR([C and C++ compilers are not link compatible. Can not continue.])]) + fi + + # If we are on HP-UX, ensure that we're using aCC + case "$host" in + *hpux*) + if test "$BASECXX" = "CC"; then + AC_MSG_WARN([*** You will probably have problems compiling the MPI 2]) + AC_MSG_WARN([*** C++ bindings with the HP-UX CC compiler. You should]) + AC_MSG_WARN([*** probably be using the aCC compiler. Re-run configure]) + AC_MSG_WARN([*** with the environment variable "CXX=aCC".]) + fi + ;; + esac + + # Note: gcc-imperonating compilers accept -O3 + if test "$WANT_DEBUG" = "1"; then + OPTFLAGS= + else + if test "$GXX" = yes; then + OPTFLAGS="-O3" + else + OPTFLAGS="-O" + fi + fi + + # config/ompi_ensure_contains_optflags.m4 + OPAL_ENSURE_CONTAINS_OPTFLAGS(["$CXXFLAGS"]) + AC_MSG_CHECKING([for C++ optimization flags]) + AC_MSG_RESULT([$co_result]) + CXXFLAGS="$co_result" + + # bool type size and alignment + AC_LANG_PUSH(C++) + AC_CHECK_SIZEOF(bool) + OPAL_C_GET_ALIGNMENT(bool, OPAL_ALIGNMENT_CXX_BOOL) + AC_LANG_POP(C++) +]) + + +# _OMPI_CXX_CHECK_EXCEPTIONS() +# ---------------------------- +# Check for exceptions, skipping the test if we don't want the C++ +# bindings +AC_DEFUN([_OMPI_CXX_CHECK_EXCEPTIONS],[ + # Check for special things due to C++ exceptions + ENABLE_CXX_EXCEPTIONS=no + HAVE_CXX_EXCEPTIONS=0 + AC_ARG_ENABLE([cxx-exceptions], + [AC_HELP_STRING([--enable-cxx-exceptions], + [enable support for C++ exceptions (default: disabled)])], + [ENABLE_CXX_EXCEPTIONS="$enableval"]) + + AC_MSG_CHECKING([if want C++ exception handling]) + + AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "0"], + [AS_IF([test "$$enable_cxx_exceptions" = "yes"], + [AC_MSG_RESULT([error]) + AC_MSG_WARN([--enable-cxx-exceptions was specified, but the MPI C++ bindings were disabled]) + AC_MSG_ERROR([Cannot continue])], + [AC_MSG_RESULT([skipped])])], + [_OMPI_CXX_CHECK_EXCEPTIONS_BACKEND]) + + AC_DEFINE_UNQUOTED(OMPI_HAVE_CXX_EXCEPTION_SUPPORT, $HAVE_CXX_EXCEPTIONS, + [Whether or not we have compiled with C++ exceptions support]) +]) + +# _OMPI_CXX_CHECK_EXCEPTIONS_BACKEND() +# ------------------------------------ +# Back end of _OMPI_CXX_CHECK_EXCEPTIONS +AC_DEFUN([_OMPI_CXX_CHECK_EXCEPTIONS_BACKEND],[ + AC_MSG_RESULT([$ENABLE_CXX_EXCEPTIONS]) + if test "$ENABLE_CXX_EXCEPTIONS" = "yes"; then + # config/cxx_have_exceptions.m4 + OMPI_CXX_HAVE_EXCEPTIONS + # config/cxx_find_exception_flags.m4 + OMPI_CXX_FIND_EXCEPTION_FLAGS + if test "$OMPI_CXX_EXCEPTIONS" = "1"; then + HAVE_CXX_EXCEPTIONS=1 + + # Test to see if the C compiler likes these flags + AC_MSG_CHECKING([to see if C compiler likes the exception flags]) + CFLAGS="$CFLAGS $OMPI_CXX_EXCEPTIONS_CXXFLAGS" + AC_LANG_SAVE + AC_LANG_C + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int i = 0;]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_WARN([C++ exception flags are different between the C and C++ compilers; this configure script cannot currently handle this scenario. Either disable C++ exception support or send mail to the Open MPI users list.]) + AC_MSG_ERROR([*** Cannot continue])]) + AC_LANG_RESTORE + + # We can't test the F77 and F90 compilers now because we + # haven't found/set the up yet. So just save the flags + # and test them later (in ompi_setup_f77.m4 and + # ompi_setup_f90.m4). + + CXXFLAGS="$CXXFLAGS $OMPI_CXX_EXCEPTIONS_CXXFLAGS" + LDFLAGS="$LDFLAGS $OMPI_CXX_EXCEPTIONS_LDFLAGS" + + OPAL_WRAPPER_FLAGS_ADD([CFLAGS], [$OMPI_CXX_EXCEPTIONS_CXXFLAGS]) + OPAL_WRAPPER_FLAGS_ADD([CXXFLAGS], [$OMPI_CXX_EXCEPTIONS_CXXFLAGS]) + OPAL_WRAPPER_FLAGS_ADD([FCFLAGS], [$OMPI_CXX_EXCEPTIONS_CXXFLAGS]) + fi + fi +]) + +# _OMPI_CXX_CHECK_BUILTIN +# ----------------------- +# Check for __builtin_* stuff +AC_DEFUN([_OMPI_CXX_CHECK_BUILTIN],[ + OPAL_VAR_SCOPE_PUSH([have_cxx_builtin_expect have_cxx_builtin_prefetch]) + have_cxx_builtin_expect=0 + have_cxx_builtin_prefetch=0 + + AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"], + [_OMPI_CXX_CHECK_BUILTIN_BACKEND]) + + AC_DEFINE_UNQUOTED([OMPI_CXX_HAVE_BUILTIN_EXPECT], + [$have_cxx_builtin_expect], + [Whether C++ compiler supports __builtin_expect]) + AC_DEFINE_UNQUOTED([OMPI_CXX_HAVE_BUILTIN_PREFETCH], + [$have_cxx_builtin_prefetch], + [Whether C++ compiler supports __builtin_prefetch]) + + OPAL_VAR_SCOPE_POP +]) + +# _OMPI_CXX_CHECK_BUILTIN_BACKEND +# ------------------------------- +# Back end of _OMPI_CXX_CHECK_BUILTIN +AC_DEFUN([_OMPI_CXX_CHECK_BUILTIN_BACKEND],[ + + # see if the C++ compiler supports __builtin_expect + AC_LANG_PUSH(C++) + AC_CACHE_CHECK([if $CXX supports __builtin_expect], + [ompi_cv_cxx_supports___builtin_expect], + [AC_TRY_LINK([], + [void *ptr = (void*) 0; + if (__builtin_expect (ptr != (void*) 0, 1)) return 0;], + [ompi_cv_cxx_supports___builtin_expect="yes"], + [ompi_cv_cxx_supports___builtin_expect="no"])]) + if test "$ompi_cv_cxx_supports___builtin_expect" = "yes" ; then + have_cxx_builtin_expect=1 + else + have_cxx_builtin_expect=0 + fi + AC_LANG_POP(C++) + + # see if the C compiler supports __builtin_prefetch + AC_LANG_PUSH(C++) + AC_CACHE_CHECK([if $CXX supports __builtin_prefetch], + [ompi_cv_cxx_supports___builtin_prefetch], + [AC_TRY_LINK([], + [int ptr; + __builtin_prefetch(&ptr,0,0);], + [ompi_cv_cxx_supports___builtin_prefetch="yes"], + [ompi_cv_cxx_supports___builtin_prefetch="no"])]) + if test "$ompi_cv_cxx_supports___builtin_prefetch" = "yes" ; then + have_cxx_builtin_prefetch=1 + else + have_cxx_builtin_prefetch=0 + fi + AC_LANG_POP(C++) +]) + + +# _OMPI_CXX_CHECK_2D_CONST_CAST +# ----------------------------- +# Check for compiler support of 2D const casts +AC_DEFUN([_OMPI_CXX_CHECK_2D_CONST_CAST],[ + OPAL_VAR_SCOPE_PUSH([use_2d_const_cast]) + use_2d_const_cast=0 + + AS_IF([test "$WANT_MPI_CXX_SUPPORT" = "1"], + [_OMPI_CXX_CHECK_2D_CONST_CAST_BACKEND]) + + AC_DEFINE_UNQUOTED([OMPI_CXX_SUPPORTS_2D_CONST_CAST], + [$use_2d_const_cast], + [Whether a const_cast on a 2-d array will work with the C++ compiler]) + + OPAL_VAR_SCOPE_POP +]) + +# _OMPI_CXX_CHECK_2D_CONST_CAST_BACKEND +# --------------------------------- +# Back end of _OMPI_CHECK_2D_CONST_CAST +AC_DEFUN([_OMPI_CXX_CHECK_2D_CONST_CAST_BACKEND],[ + # see if the compiler supports const_cast of 2-dimensional arrays + AC_LANG_PUSH(C++) + AC_CACHE_CHECK([if $CXX supports const_cast<> properly], + [ompi_cv_cxx_supports_2d_const_cast], + [AC_TRY_COMPILE([int non_const_func(int ranges[][3]); +int cast_test(const int ranges[][3]) { + return non_const_func(const_cast(ranges)); +}], + [], + [ompi_cv_cxx_supports_2d_const_cast="yes"], + [ompi_cv_cxx_supports_2d_const_cast="no"])]) + if test "$ompi_cv_cxx_supports_2d_const_cast" = "yes" ; then + use_2d_const_cast=1 + fi + AC_LANG_POP(C++) +]) diff --git a/config/ompi_setup_fc.m4 b/config/ompi_setup_fc.m4 new file mode 100644 index 00000000..a65caa17 --- /dev/null +++ b/config/ompi_setup_fc.m4 @@ -0,0 +1,253 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl +dnl OMPI_SETUP_FC +dnl + +# This is REQUIREd, below. +AC_DEFUN_ONCE([_OMPI_SETUP_FC_BANNER],[ + opal_show_subtitle "Fortran compiler" +]) + +############################################################################# + +# This is REQUIREd, below. +AC_DEFUN_ONCE([_OMPI_SETUP_FC_COMPILER],[ + OPAL_VAR_SCOPE_PUSH([ompi_fcflags_save]) + ompi_fcflags_save="$FCFLAGS" + # Note that AC_PROG_FC will look for *any* fortran compiler, and + # we don't want it to find an F77-only compiler. The AC docs + # don't recommend using the "dialect" feature of AC_PROG_FC, so + # instead use the optional first parameter and steal the list of + # Fortran compilers (excluding the f77 compiler names) from AC's + # default list of compilers and use it here. This is the main + # reason we have an OMPI-ized version of the PROG_FC macro. + AC_PROG_FC([gfortran f95 fort xlf95 ifort ifc efc pgfortran pgf95 lf95 f90 xlf90 pgf90 epcf90 nagfor]) + FCFLAGS="$ompi_fcflags_save" + OPAL_VAR_SCOPE_POP +]) + +############################################################################# + +# General Fortran compiler setup +AC_DEFUN([OMPI_SETUP_FC],[ + OPAL_VAR_SCOPE_PUSH([ompi_fc_happy LDFLAGS_save fc_version]) + + # Force the intro banner to be displayed first + AC_REQUIRE([_OMPI_SETUP_FC_BANNER]) + + # Unfortunately, we must REQUIRE this for the reasons cited in the + # Autoconf (version >= 2.64) docs. + AC_REQUIRE([_OMPI_SETUP_FC_COMPILER]) + + AS_IF([test -z "$FC"], + [AC_MSG_WARN([*** All Fortran MPI bindings disabled (could not find compiler)]) + ompi_fc_happy=0], + [ompi_fc_happy=1]) + + AS_IF([test $ompi_fc_happy -eq 1 && test "$WANT_DEBUG" = "1" && test "$enable_debug_symbols" != "no"], + [FCFLAGS="$FCFLAGS -g" + OPAL_FLAGS_UNIQ(FCFLAGS) + AC_MSG_WARN([-g has been added to FCFLAGS (--enable-debug)]) + ]) + + # Make sure the compiler actually works, if not cross-compiling. + # Don't just use the AC macro so that we can have a pretty + # message. + AS_IF([test $ompi_fc_happy -eq 1], + [OPAL_CHECK_COMPILER_WORKS([Fortran], [], [], [], + [AC_MSG_ERROR([Could not run a simple Fortran program. Aborting.])])]) + + # OS X before 10.3 (deployment target) does not allow undefined common + # symbols in shared libraries. Because we can't figure out how to + # implement MPI_STATUSES_IGNORE and friends wihtout common symbols, on + # OS X we can't build the F90 bindings as a shared library. + OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS= + AS_IF([test $ompi_fc_happy -eq 1], + [AC_MSG_CHECKING([for extra arguments to build a shared library]) + case "$host" in + *apple-darwin*) + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + AC_MSG_RESULT([impossible -- -static]) + OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS="-static" + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + AC_MSG_RESULT([impossible -- -static]) + OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS="-static" + ;; + 10.*) + AC_MSG_RESULT([-Wl,-single_module]) + OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS="-Wl,-single_module" + esac + fi + ;; + *) + AC_MSG_RESULT([none needed]) + OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS="" + ;; + esac]) + AC_SUBST(OMPI_FORTRAN_EXTRA_SHARED_LIBRARY_FLAGS) + + # The Absoft compiler does not like the fact that we use lots of + # "ignore TKR" comment pragmas that it doesn't understand, and + # will warn about them. From Tony Goetz at Absoft, we can use the + # -Z790 flag to quell these warnings. + # The NAG compiler is too picky about naming conventions, so use the + # -mismatch flag to keep it happy + AC_MSG_CHECKING([for $FC warnings flags]) + fc_version=`$FC --version 2>&1` + case "$fc_version" in + *Absoft*) + AC_MSG_RESULT([-Z790]) + FCFLAGS="$FCFLAGS -Z790" + ;; + *NAG*) + AC_MSG_RESULT([-mismatch]) + FCFLAGS="$FCFLAGS -mismatch" + ;; + *) + AC_MSG_RESULT([none]) + ;; + esac + + # If we're still good, then save the extra file types. Do this last + # because it implies tests that should be invoked by the above tests + # (e.g., running the fortran compiler). + AS_IF([test $ompi_fc_happy -eq 1], + [AC_FC_SRCEXT(f) + AC_FC_SRCEXT(f90)]) + + # Per trac #1982, on OS X, we may need some esoteric linker flags + # in the wrapper compilers. However, per + # https://github.com/open-mpi/ompi/issues/259, we need to use + # -Wl,-flat_namespace when *building* the library (and + # -Wl,-commons,use_dylibs isn't quite sufficient). + AS_IF([test $ompi_fc_happy -eq 1], + [AC_MSG_CHECKING([to see if Fortran compilers need additional linker flags]) + case "$host" in + *apple-darwin*) + # Test whether -Wl,-flat_namespace works; if it does, + # both use it to build the libraries, and also put it + # in the wrapper compiler LDFLAGS. + LDFLAGS_save=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-flat_namespace" + AC_LANG_PUSH([Fortran]) + AC_LINK_IFELSE([AC_LANG_SOURCE([[program test + integer :: i +end program]])], + [LDFLAGS_save=$LDFLAGS + OMPI_FORTRAN_WRAPPER_FLAGS="-Wl,-flat_namespace" + OPAL_WRAPPER_FLAGS_ADD([FCFLAGS], [$OMPI_FORTRAN_WRAPPER_FLAGS])], + [OMPI_FORTRAN_WRAPPER_FLAGS=none]) + AC_LANG_POP([Fortran]) + LDFLAGS=$LDFLAGS_save + AC_MSG_RESULT([$OMPI_FORTRAN_WRAPPER_FLAGS]) + ;; + *) + AC_MSG_RESULT([none]) + ;; + esac + ]) + + # Get our Fortran symbol mangling scheme + AS_IF([test $ompi_fc_happy -eq 1], + [OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION]) + + # Make sure we can link with C code. + AS_IF([test $ompi_fc_happy -eq 1], + [OPAL_LANG_LINK_WITH_C([Fortran], [], + [cat <]]) + else + AC_MSG_RESULT([no]) + WANT_MPI_JAVA_SUPPORT=0 + fi + AC_DEFINE_UNQUOTED([OMPI_WANT_JAVA_BINDINGS], [$WANT_MPI_JAVA_SUPPORT], + [do we want java mpi bindings]) + AM_CONDITIONAL(OMPI_WANT_JAVA_BINDINGS, test "$WANT_MPI_JAVA_SUPPORT" = "1") + + # Are we happy? + AS_IF([test "$WANT_MPI_JAVA_SUPPORT" = "1"], + [AC_MSG_WARN([******************************************************]) + AC_MSG_WARN([*** Java MPI bindings are provided on a provisional]) + AC_MSG_WARN([*** basis. They are NOT part of the current or]) + AC_MSG_WARN([*** proposed MPI standard. Continued inclusion of]) + AC_MSG_WARN([*** the Java MPI bindings in Open MPI is contingent]) + AC_MSG_WARN([*** upon user interest and developer support.]) + AC_MSG_WARN([******************************************************]) + ]) + + AC_CONFIG_FILES([ + ompi/mpi/java/Makefile + ompi/mpi/java/java/Makefile + ompi/mpi/java/c/Makefile + ]) +]) diff --git a/config/ompi_setup_mpi_ext.m4 b/config/ompi_setup_mpi_ext.m4 new file mode 100644 index 00000000..a22ef1aa --- /dev/null +++ b/config/ompi_setup_mpi_ext.m4 @@ -0,0 +1,29 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. +# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +AC_DEFUN([OMPI_SETUP_MPI_EXT],[ + opal_show_title "Extended MPI interfaces setup" + + OMPI_EXT +]) diff --git a/config/ompi_setup_mpi_fortran.m4 b/config/ompi_setup_mpi_fortran.m4 new file mode 100644 index 00000000..089f7c5b --- /dev/null +++ b/config/ompi_setup_mpi_fortran.m4 @@ -0,0 +1,823 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2014-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2016 IBM Corporation. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_SETUP_MPI_FORTRAN],[ + # Default to building nothing + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS + + OMPI_FORTRAN_BUILD_SIZEOF=0 + + OMPI_FORTRAN_USEMPI_DIR= + OMPI_FORTRAN_USEMPI_LIB= + + OMPI_FORTRAN_USEMPIF08_DIR= + OMPI_FORTRAN_USEMPIF08_LIB= + + OMPI_FORTRAN_MAX_ARRAY_RANK=0 + + OMPI_FORTRAN_HAVE_INTERFACE=0 + OMPI_FORTRAN_HAVE_IGNORE_TKR=0 + OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0 + OMPI_FORTRAN_HAVE_BIND_C=0 + OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV=0 + OMPI_FORTRAN_HAVE_STORAGE_SIZE=0 + OMPI_FORTRAN_HAVE_ISO_C_BINDING=0 + OMPI_FORTRAN_HAVE_BIND_C_SUB=0 + OMPI_FORTRAN_HAVE_BIND_C_TYPE=0 + OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0 + OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=0 + OMPI_FORTRAN_HAVE_PRIVATE=0 + OMPI_FORTRAN_SUBARRAYS_SUPPORTED=.FALSE. + + # These macros control symbol names for Fortran/C interoperability + # + OMPI_F08_SUFFIX="_f08" + OMPI_F_SUFFIX="_f" + + OMPI_MPI_PREFIX="MPI_" + OMPI_MPI_BIND_PREFIX="mpi_" + + # Open MPI now treats $F77 and $FC the same, meaning that we + # expect them to be the same back-end compiler. If they're not, + # results are undefined. We do a cursory check to see that FC and + # F77 are the same string value (if they're defined). If they're + # not, we'll issue a warning, but keep going on the assumption + # that they're the same back-end compiler (e.g., pgf77 and pgf90). + # Open MPI only uses $FC and $FCFLAGS -- $F77 and $FFLAGS are now + # ignored. + AS_IF([test "$F77" != "" || test "$FFLAGS" != ""], + [AC_MSG_WARN([Open MPI now ignores the F77 and FFLAGS environment variables; only the FC and FCFLAGS environment variables are used.]) + sleep 5]) + + #----------------------------------------------------------------------- + # If we want any of the Fortran MPI bindings, setup the Fortran compiler + #----------------------------------------------------------------------- + ompi_fortran_happy=0 + # $LN_S is used below + AC_PROG_LN_S + + ompi_fortran_double_underscore=0 + ompi_fortran_single_underscore=0 + ompi_fortran_caps=0 + ompi_fortran_plain=0 + + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_MPIFH_BINDINGS], + [$OMPI_FORTRAN_MPIFH_BINDINGS], + [Whether we are building support for the mpif.h bindings or not]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_USEMPI_BINDINGS], + [$OMPI_FORTRAN_USEMPI_BINDINGS], + [Whether we are building support for the "use mpi" bindings or not]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_USEMPIF08_BINDINGS], + [$OMPI_FORTRAN_USEMPIF08_BINDINGS], + [Whether we are building support for the "use mpif08" bindings or not]) + + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS], + [OMPI_SETUP_FC([ompi_fortran_happy=1])]) + + # These values will be determined by SETUP_FC. We must always + # AC_DEFINE these results, even in the --disable-mpi-fortran case, + # for ompi_info. + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_DOUBLE_UNDERSCORE], + [$ompi_fortran_double_underscore], + [Whether fortran symbols have a trailing double underscore or not]) + OMPI_FORTRAN_DOUBLE_UNDERSCORE=$ompi_fortran_double_underscore + AC_SUBST(OMPI_FORTRAN_DOUBLE_UNDERSCORE) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_SINGLE_UNDERSCORE], + [$ompi_fortran_single_underscore], + [Whether fortran symbols have a trailing underscore or not]) + OMPI_FORTRAN_SINGLE_UNDERSCORE=$ompi_fortran_single_underscore + AC_SUBST(OMPI_FORTRAN_SINGLE_UNDERSCORE) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_CAPS], + [$ompi_fortran_caps], + [Whether fortran symbols are all caps or not]) + OMPI_FORTRAN_CAPS=$ompi_fortran_caps + AC_SUBST(OMPI_FORTRAN_CAPS) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_PLAIN], + [$ompi_fortran_plain], + [Whether fortran symbols have no trailing underscore or not]) + OMPI_FORTRAN_PLAIN=$ompi_fortran_plain + AC_SUBST(OMPI_FORTRAN_PLAIN) + + # Check to see if any of the MPI Fortran bindings were + # specifically requested. If so, and we weren't able to setup the + # Fortran compiler properly, it's an error. + AS_IF([test $ompi_fortran_happy -eq 0 && \ + test $OMPI_MIN_REQUIRED_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS], + [AC_MSG_WARN([MPI Fortran bindings requested, but no suitable Fortran compiler found]) + AC_MSG_ERROR([Cannot continue])]) + + # This allows us to mark bogus types, but still have them be a valid + # [sentinel] value + AC_DEFINE([ompi_fortran_bogus_type_t], [int], + [A bogus type that allows us to have sentinel type values that are still valid]) + + # These get filled in as we check for each type + OMPI_FORTRAN_IKINDS= + OMPI_FORTRAN_RKINDS= + OMPI_FORTRAN_CKINDS= + + # We want to set the #define's for all of these, so invoke the macros + # regardless of whether we have F77 support or not. + OMPI_FORTRAN_CHECK([CHARACTER], [yes], + [char, int32_t, int, int64_t, long long, long], [-1], [yes]) + + OMPI_FORTRAN_CHECK([LOGICAL], [yes], + [char, int32_t, int, int64_t, long long, long], [-1], [yes]) + OMPI_FORTRAN_CHECK([LOGICAL*1], [yes], + [char, int8_t, short, int32_t, int, int64_t, long long, long], [1], [yes]) + OMPI_FORTRAN_CHECK([LOGICAL*2], [yes], + [short, int16_t, int32_t, int, int64_t, long long, long], [2], [yes]) + OMPI_FORTRAN_CHECK([LOGICAL*4], [yes], + [int32_t, int, int64_t, long long, long], [4], [yes]) + OMPI_FORTRAN_CHECK([LOGICAL*8], [yes], + [int, int64_t, long long, long], [8], [yes]) + + OMPI_FORTRAN_CHECK([INTEGER], [yes], + [int32_t, int, int64_t, long long, long], [-1], [yes]) + OMPI_FORTRAN_CHECK([INTEGER*1], [no], + [char, int8_t, short, int, int64_t, long long, long], [1], [yes]) + OMPI_FORTRAN_CHECK([INTEGER*2], [no], + [short, int16_t, int32_t, int, int64_t, long long, long], [2], [yes]) + OMPI_FORTRAN_CHECK([INTEGER*4], [no], + [int32_t, int, int64_t, long long, long], [4], [yes]) + OMPI_FORTRAN_CHECK([INTEGER*8], [no], + [int, int64_t, long long, long], [8], [yes]) + OMPI_FORTRAN_CHECK([INTEGER*16], [no], + [int, int64_t, long long, long], [16], [yes]) + + OMPI_FORTRAN_CHECK([REAL], [yes], + [float, double, long double], [-1], [yes]) + OMPI_FORTRAN_CHECK([REAL*2], [no], + [float, double, long double], [2], [yes]) + OMPI_FORTRAN_CHECK([REAL*4], [no], + [float, double, long double], [4], [yes]) + OMPI_FORTRAN_CHECK([REAL*8], [no], + [float, double, long double], [8], [yes]) + OMPI_FORTRAN_CHECK([REAL*16], [no], + [float, double, long double], [16], [yes]) + + # In some compilers, the bit representation of REAL*16 is not the same + # as the C counterpart that we found. If this is the case, then we + # want to disable reduction support for MPI_REAL16 (per ticket #1603). + OMPI_FORTRAN_CHECK_REAL16_C_EQUIV + + OMPI_FORTRAN_CHECK([DOUBLE PRECISION], [yes], + [float, double, long double], [-1], [yes]) + + OMPI_FORTRAN_CHECK([COMPLEX], [yes], [float _Complex, double _Complex], [-1], [no]) + + # The complex*N tests are a bit different (note: the complex tests are + # the same as all the rest, because complex is a composite of two + # reals, which we *have* to have. It's only the complex*N tests that + # are different). The fortran complex types are composites of the + # real*(N/2) types. So for us to support complex*N, two conditions + # must be true: + # + # a) we must support real*(N/2) (i.e., compiler supports it and we + # have a back-end C type for it) + # b) compiler supports complex*N + + OMPI_FORTRAN_CHECK([COMPLEX*4], [no], [float _Complex], [4], [no]) + OMPI_FORTRAN_CHECK([COMPLEX*8], [no], + [float _Complex, double _Complex, long double _Complex], + [8], [no]) + OMPI_FORTRAN_CHECK([COMPLEX*16], [no], + [float _Complex, double _Complex, long double _Complex], + [16], [no]) + OMPI_FORTRAN_CHECK([COMPLEX*32], [no], + [float _Complex, double _Complex, long double _Complex], + [32], [no]) + # Double precision complex types are not standard, but many + # compilers support it. Code should be wrapped with #ifdef + # OMPI_HAVE_FORTRAN_DOUBLE_COMPLEX + OMPI_FORTRAN_CHECK([DOUBLE COMPLEX], [no], + [float _Complex, double _Complex, long double _Complex], + [-1], [no]) + + # Regardless of whether we have fortran bindings, or even a + # fortran compiler, get the max value for a fortran MPI handle + # (this macro handles the case where we don't have a fortran + # compiler). + OMPI_FORTRAN_GET_HANDLE_MAX + + # Check for Fortran compilers value of TRUE and for the correct + # assumption on LOGICAL for conversion into what C considers to be + # a true value. + OMPI_FORTRAN_GET_VALUE_TRUE + OMPI_FORTRAN_CHECK_LOGICAL_ARRAY + + # Find out how many array ranks this compiler supports. + OMPI_FORTRAN_CHECK_MAX_ARRAY_RANK + + # How big should MPI_STATUS_SIZE be? (i.e., the size of + # MPI_STATUS, expressed in units of Fortran INTEGERs). The C + # equivalent of MPI_Status contains 4 C ints and a size_t. + OMPI_FORTRAN_STATUS_SIZE=0 + AC_MSG_CHECKING([for the value of MPI_STATUS_SIZE]) + bytes=`expr 4 \* $ac_cv_sizeof_int + $ac_cv_sizeof_size_t` + num_integers=`expr $bytes / $ac_cv_sizeof_int` + sanity=`expr $num_integers \* $ac_cv_sizeof_int` + AS_IF([test "$sanity" != "$bytes"], + [AC_MSG_RESULT([unknown!]) + AC_MSG_WARN([WARNING: Size of C int: $ac_cv_sizeof_int]) + AC_MSG_WARN([WARNING: Size of C size_t: $ac_cv_sizeof_size_t]) + AC_MSG_WARN([WARNING: Size of Fortran INTEGER: $OMPI_SIZEOF_FORTRAN_INTEGER]) + AC_MSG_WARN([Could not make this work out evenly...!]) + AC_MSG_ERROR([Cannot continue])]) + OMPI_FORTRAN_STATUS_SIZE=$num_integers + AC_MSG_RESULT([$OMPI_FORTRAN_STATUS_SIZE Fortran INTEGERs]) + AC_SUBST(OMPI_FORTRAN_STATUS_SIZE) + + # Setup for the compilers that don't support ignore TKR functionality + OPAL_UNIQ(OMPI_FORTRAN_IKINDS) + AC_SUBST(OMPI_FORTRAN_IKINDS) + OPAL_UNIQ(OMPI_FORTRAN_RKINDS) + AC_SUBST(OMPI_FORTRAN_RKINDS) + OPAL_UNIQ(OMPI_FORTRAN_CKINDS) + AC_SUBST(OMPI_FORTRAN_CKINDS) + + # We can't use C_INTxx_T KIND values in mpif.h because many + # existing MPI Fortran applications are of the form: + # + # program main + # implicit none + # include 'mpif.h' + # + # ...and you can't have a "use..." statement before that (to get + # the Fortran/C interop C_INTxx_T KIND values). So figure out + # those KIND values here and just substitue them in via + # AC_DEFINE's. Kinda gross, but there you are. :-\ + OMPI_FORTRAN_GET_KIND_VALUE([C_INT16_T], 4, [OMPI_FORTRAN_C_INT16_T_KIND]) + OMPI_FORTRAN_GET_KIND_VALUE([C_INT32_T], 9, [OMPI_FORTRAN_C_INT32_T_KIND]) + OMPI_FORTRAN_GET_KIND_VALUE([C_INT64_T], 18, [OMPI_FORTRAN_C_INT64_T_KIND]) + + #-------------------------------------------------------- + # Fortran mpif.h MPI bindings + #-------------------------------------------------------- + + AC_MSG_CHECKING([if building Fortran mpif.h bindings]) + AS_IF([test $ompi_fortran_happy -eq 1], + [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS + AC_MSG_RESULT([yes])], + [OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_NO_BINDINGS + AC_MSG_RESULT([no])]) + + # "INTERFACE" is needed for MPI_SIZEOF + AS_IF([test $ompi_fortran_happy -eq 1], + [OMPI_FORTRAN_CHECK_INTERFACE( + [OMPI_FORTRAN_HAVE_INTERFACE=1], + [OMPI_FORTRAN_HAVE_INTERFACE=0])]) + AC_SUBST(OMPI_FORTRAN_HAVE_INTERFACE) + + # The iso_fortran_env module is needed for MPI_SIZEOF + AS_IF([test $ompi_fortran_happy -eq 1], + [OMPI_FORTRAN_CHECK_ISO_FORTRAN_ENV( + [OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV=1], + [OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV=0])]) + AC_SUBST(OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV) + + # Ensure that the fortran compiler supports STORAGE_SIZE for + # enough relevant types. + AS_IF([test $ompi_fortran_happy -eq 1], + [OMPI_FORTRAN_CHECK_STORAGE_SIZE( + [OMPI_FORTRAN_HAVE_STORAGE_SIZE=1], + [OMPI_FORTRAN_HAVE_STORAGE_SIZE=0])]) + AC_SUBST(OMPI_FORTRAN_HAVE_STORAGE_SIZE) + + # We need INTERFACE, ISO_FORTRAN_ENV, and STORAGE_SIZE() support + # to build MPI_SIZEOF support + AS_IF([test $ompi_fortran_happy -eq 1 && \ + test $OMPI_FORTRAN_HAVE_INTERFACE -eq 1 && \ + test $OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV -eq 1 && \ + test $OMPI_FORTRAN_HAVE_STORAGE_SIZE -eq 1], + [OMPI_FORTRAN_BUILD_SIZEOF=1], + [OMPI_FORTRAN_BUILD_SIZEOF=0]) + AC_SUBST(OMPI_FORTRAN_BUILD_SIZEOF) + + #-------------------------------------------- + # Fortran use mpi or use mpi_f08 MPI bindings + #-------------------------------------------- + + AS_IF([test $ompi_fortran_happy -eq 1 && \ + test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS], + [ # Look for the fortran module compiler flag + OMPI_FORTRAN_FIND_MODULE_INCLUDE_FLAG([], + [AC_MSG_WARN([*** Could not determine the fortran compiler flag to indicate where modules reside]) + AC_MSG_ERROR([*** Cannot continue])]) + + # Look for ignore TKR syntax + OMPI_FORTRAN_CHECK_IGNORE_TKR([OMPI_FORTRAN_HAVE_IGNORE_TKR=1]) + ]) + + # If we got here, we can build the mpi module if it was requested. + # Decide whether to build the ignore TKR version or the + # non-ignore-TKR/legacy version. + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \ + test $ompi_fortran_happy -eq 1], + [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS + AS_IF([test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1], + [OMPI_FORTRAN_USEMPI_DIR=mpi/fortran/use-mpi-ignore-tkr + OMPI_FORTRAN_USEMPI_LIB=-l${with_libmpi_name}_usempi_ignore_tkr], + [OMPI_FORTRAN_USEMPI_DIR=mpi/fortran/use-mpi-tkr + OMPI_FORTRAN_USEMPI_LIB=-l${with_libmpi_name}_usempi]) + ]) + + OMPI_FORTRAN_HAVE_ISO_C_BINDING=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \ + test $ompi_fortran_happy -eq 1], + [OMPI_FORTRAN_CHECK_ISO_C_BINDING( + [OMPI_FORTRAN_HAVE_ISO_C_BINDING=1], + [OMPI_FORTRAN_HAVE_ISO_C_BINDING=0])]) + + AC_MSG_CHECKING([if building Fortran 'use mpi' bindings]) + AS_IF([test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS], + [AC_MSG_RESULT([yes])], + [OMPI_TRY_FORTRAN_BINDINGS=$OMPI_FORTRAN_MPIFH_BINDINGS + AC_MSG_RESULT([no])]) + + #--------------------------------- + # Fortran use mpi_f08 MPI bindings + #--------------------------------- + + # If we got all the stuff from above, then also look for the new + # F08 syntax that we can use for the use_mpif08 module. + + # We need to have ignore TKR functionality to build the mpi_f08 + # module + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1], + [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPIF08_BINDINGS + OMPI_FORTRAN_F08_PREDECL=$OMPI_FORTRAN_IGNORE_TKR_PREDECL + OMPI_FORTRAN_F08_TYPE=$OMPI_FORTRAN_IGNORE_TKR_TYPE + ]) + + # The overall "_BIND_C" variable will be set to 1 if we have all + # the necessary forms of BIND(C) + OMPI_FORTRAN_HAVE_BIND_C=0 + + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # If we don't have ISO C bindings, we won't build mpi_f08 at all + AS_IF([test "$OMPI_FORTRAN_HAVE_ISO_C_BINDING" -eq 0], + [OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + OMPI_FORTRAN_HAVE_BIND_C_SUB=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # If we don't have SUBROUTINE BIND(C), we won't build mpi_f08 at all + OMPI_FORTRAN_CHECK_BIND_C_SUB( + [OMPI_FORTRAN_HAVE_BIND_C_SUB=1], + [OMPI_FORTRAN_HAVE_BIND_C_SUB=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + OMPI_FORTRAN_HAVE_BIND_C_TYPE=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # If we don't have TYPE, BIND(C), we won't build mpi_f08 at all + OMPI_FORTRAN_CHECK_BIND_C_TYPE( + [OMPI_FORTRAN_HAVE_BIND_C_TYPE=1], + [OMPI_FORTRAN_HAVE_BIND_C_TYPE=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + # Per discussion on the devel list starting here: + # http://www.open-mpi.org/community/lists/devel/2014/01/13799.php + # we need a new litmus test to disqualify older Fortran compilers + # (e.g., Pathscale 4.0.12) that *seem* to support all the Right + # Things, but a) do not support BIND(C, name="super_long_name") or + # b) run into an internal error when compiling our mpi_f08 module. + # Testing for b) is sketchy at best. But OMPI has some BIND(C) + # names that are >32 characters, and the same compilers that + # exhibit b) also seem to not support BIND(C) names that are >32 + # characters (i.e., a)). Hence, the following BIND(C) test checks + # to ensure that BIND(C, name="foo") works, where "foo" is + # actually a name >32 characters. + OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # If we don't have TYPE, BIND(C, name="foo"), we won't build mpi_f08 at all + OMPI_FORTRAN_CHECK_BIND_C_TYPE_NAME( + [ # If we got here, we have all the required forms of + # BIND(C), so set the top-level _BIND_C variable to 1. + OMPI_FORTRAN_HAVE_BIND_C=1 + OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=1], + [OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + # Per https://svn.open-mpi.org/trac/ompi/ticket/4590, if the + # Fortran compiler doesn't support PROCEDURE in the way we + # want/need, disable the mpi_f08 module. + OMPI_FORTRAN_HAVE_PROCEDURE=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler support "procedure" + OMPI_FORTRAN_CHECK_PROCEDURE( + [OMPI_FORTRAN_HAVE_PROCEDURE=1], + [OMPI_FORTRAN_HAVE_PROCEDURE=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + # Per https://github.com/open-mpi/ompi/issues/857, if the Fortran + # compiler doesn't properly support "USE ... ONLY" notation, + # disable the mpi_f08 module. + OMPI_FORTRAN_HAVE_USE_ONLY=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler support "USE ... ONLY" + OMPI_FORTRAN_CHECK_USE_ONLY( + [OMPI_FORTRAN_HAVE_USE_ONLY=1], + [OMPI_FORTRAN_HAVE_USE_ONLY=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler have optional arguments? + OMPI_FORTRAN_CHECK_OPTIONAL_ARGS( + [OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=1], + [OMPI_FORTRAN_HAVE_OPTIONAL_ARGS=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + OMPI_FORTRAN_HAVE_C_FUNLOC=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler supports c_funloc per + # TS 29113 subclause 8.1 ? + OMPI_FORTRAN_CHECK_C_FUNLOC( + [OMPI_FORTRAN_HAVE_C_FUNLOC=1], + [OMPI_FORTRAN_HAVE_C_FUNLOC=0 + OMPI_BUILD_FORTRAN_BINDINGS=$OMPI_FORTRAN_USEMPI_BINDINGS])]) + + OMPI_FORTRAN_HAVE_PRIVATE=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler support "private" + OMPI_FORTRAN_CHECK_PRIVATE( + [OMPI_FORTRAN_HAVE_PRIVATE=1], + [OMPI_FORTRAN_HAVE_PRIVATE=0])]) + + OMPI_FORTRAN_HAVE_PROTECTED=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler support "protected" + OMPI_FORTRAN_CHECK_PROTECTED( + [OMPI_FORTRAN_HAVE_PROTECTED=1], + [OMPI_FORTRAN_HAVE_PROTECTED=0])]) + + OMPI_FORTRAN_HAVE_ABSTRACT=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler support "abstract" + OMPI_FORTRAN_CHECK_ABSTRACT( + [OMPI_FORTRAN_HAVE_ABSTRACT=1], + [OMPI_FORTRAN_HAVE_ABSTRACT=0])]) + + OMPI_FORTRAN_HAVE_ASYNCHRONOUS=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Does the compiler support "asynchronous" + OMPI_FORTRAN_CHECK_ASYNCHRONOUS( + [OMPI_FORTRAN_HAVE_ASYNCHRONOUS=1], + [OMPI_FORTRAN_HAVE_ASYNCHRONOUS=0])]) + + OMPI_FORTRAN_F08_HANDLE_SIZE=4 + OMPI_FORTRAN_F08_HANDLE_ALIGNMENT=4 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # How big are derived types with a single INTEGER? + OMPI_FORTRAN_GET_SIZEOF([type, BIND(C) :: test_mpi_handle + integer :: MPI_VAL +end type test_mpi_handle], + [type(test_mpi_handle)], + [OMPI_FORTRAN_F08_HANDLE_SIZE]) + OMPI_FORTRAN_F08_GET_HANDLE_ALIGNMENT( + [type(test_mpi_handle)], + [OMPI_FORTRAN_F08_HANDLE_ALIGNMENT]) + ]) + + OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=1 + OMPI_FORTRAN_F08_PREDECL='!' + OMPI_FORTRAN_F08_TYPE=real + OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=0 + AS_IF([test $OMPI_TRY_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [ # Look for Fortran 2008 assumed rank syntax + OMPI_FORTRAN_CHECK_F08_ASSUMED_RANK( + [ # If we have assumed rank, we can build the use + # mpi_f08 module "better" + OMPI_FORTRAN_F08_PREDECL='!' + OMPI_FORTRAN_F08_TYPE='type(*), dimension(..)' + OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK=1]) + + # Which mpi_f08 implementation are we using? + # a) partial, proof-of-concept that supports array + # subsections (Intel compiler only) + # b) compiler supports BIND(C) and optional arguments + # ("good" compilers) + # c) compiler that does not support the items listed + # in b) ("bad" compilers) + + AC_MSG_CHECKING([which mpi_f08 implementation to build]) + AS_IF([test $OMPI_BUILD_FORTRAN_F08_SUBARRAYS -eq 1], + [ # Case a) partial/prototype implementation + OMPI_FORTRAN_USEMPIF08_DIR=mpi/fortran/use-mpi-f08-desc + OMPI_FORTRAN_SUBARRAYS_SUPPORTED=.TRUE. + OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=0 + AC_MSG_RESULT([array subsections (partial/experimental)]) + ], + [ # Both cases b) and c) + OMPI_FORTRAN_USEMPIF08_DIR=mpi/fortran/use-mpi-f08 + OMPI_FORTRAN_SUBARRAYS_SUPPORTED=.FALSE. + AS_IF([test $OMPI_FORTRAN_HAVE_OPTIONAL_ARGS -eq 1], + [ # Case b) "good compiler" + OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=0 + AC_MSG_RESULT(["good" compiler, no array subsections]) + ], + [ # Case c) "bad compiler" + OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=1 + AC_MSG_RESULT(["bad" compiler, no array subsections]) + ]) + ]) + ]) + + # Note: the current implementation *only* has wrappers; + # there is no optimized implementation for a "good" + # compiler. I'm leaving the above logic in place for + # if we ever do the optimized/no-wrapper + # implementation, but for now, I'm just hard-wiring + # OMPI_FORTRAN_NEED_WRAPPER_ROUTINES to 1 when we're + # building the F08 wrappers. + AS_IF([test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=1], + [OMPI_FORTRAN_NEED_WRAPPER_ROUTINES=0]) + + AC_MSG_CHECKING([if building Fortran 'use mpi_f08' bindings]) + AS_IF([test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS], + [OMPI_FORTRAN_USEMPIF08_LIB=-l${with_libmpi_name}_usempif08 + AC_MSG_RESULT([yes])], + [OMPI_TRY_FORTRAN_BINDIGS=$OMPI_FORTRAN_USEMPI_BINDINGS + AC_MSG_RESULT([no])]) + + # If Fortran bindings is requested, make sure at least one can be built + AS_IF([test $OMPI_MIN_REQUIRED_FORTRAN_BINDINGS -gt $OMPI_BUILD_FORTRAN_BINDINGS], + [AC_MSG_ERROR([Cannot build requested Fortran bindings, aborting])]) + + # ------------------- + # mpif.h final setup + # ------------------- + + # A preprocessor header file just for Fortran. We cannot use AC + # CONFIG_HEADER because it adds a /* */-style comment at the top, + # and this header file must be usable in .F90 files. :-( + AC_CONFIG_FILES([ompi/mpi/fortran/configure-fortran-output.h]) + + # Values for wrapper compilers + OMPI_FC=$FC + set dummy $OMPI_FC + OMPI_FC_ARGV0=[$]2 + AS_IF([test -n "$OMPI_FC_ARGV0"], + [BASEFC="`basename $OMPI_FC_ARGV0`" + OPAL_WHICH([$OMPI_FC_ARGV0], [OMPI_FC_ABSOLUTE])], + [OMPI_FC=none + BASEFC=none + OMPI_FC_ABSOLUTE=none]) + + AC_SUBST(OMPI_FC) + AC_SUBST(OMPI_FC_ABSOLUTE) + AC_DEFINE_UNQUOTED(OMPI_FC, ["$OMPI_FC"], [Underlying Fortran compiler]) + AC_DEFINE_UNQUOTED(OMPI_FC_ABSOLUTE, ["$OMPI_FC_ABSOLUTE"], + [Absolutey path to the underlying Fortran compiler found by configure]) + + # These go into ompi/info/param.c + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_BUILD_SIZEOF], + [$OMPI_FORTRAN_BUILD_SIZEOF], + [Whether the mpif.h interface supports the MPI_SIZEOF interface or not]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_INTERFACE], + [$OMPI_FORTRAN_HAVE_INTERFACE], + [Whether the compiler supports INTERFACE or not]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV], + [$OMPI_FORTRAN_HAVE_ISO_FORTRAN_ENV], + [Whether the compiler supports ISO_FORTRAN_ENV or not]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_STORAGE_SIZE], + [$OMPI_FORTRAN_HAVE_STORAGE_SIZE], + [Whether the compiler supports STORAGE_SIZE on relevant types]) + + # This conditional is used to determine whether we compile the + # various .f90 files that contain MPI_SIZEOF implementations. + AM_CONDITIONAL([BUILD_FORTRAN_SIZEOF], + [test $OMPI_FORTRAN_BUILD_SIZEOF -eq 1]) + + # There are 2 layers to the MPI mpif.h layer. The only extra thing + # that determine mpif.h bindings is that fortran can be disabled + # by user. In such cases, we need to not build the target at all. + # One layer generates MPI_ bindings. The other layer + # generates PMPI_ bindings. The following conditions + # determine whether each (or both) these layers are built. + # + # Superceeding clause: + # - Fortran bindings should be enabled, else everything is + # disabled + # 1. MPI_ bindings are needed if: + # - Profiling is not required + # - Profiling is required but weak symbols are not supported + # 2. PMPI_ bindings are needed if profiling is required. + # + # Hence we define 2 conditionals which tell us whether each of + # these layers need to be built or NOT + + AM_CONDITIONAL(BUILD_MPI_FORTRAN_MPIFH_BINDINGS_LAYER, + [test $OMPI_PROFILING_COMPILE_SEPARATELY -eq 1 && \ + test $OMPI_BUILD_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS]) + AM_CONDITIONAL(BUILD_PMPI_FORTRAN_MPIFH_BINDINGS_LAYER, + [test $OMPI_BUILD_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS]) + AM_CONDITIONAL(OMPI_BUILD_FORTRAN_MPIFH_BINDINGS, + [test $OMPI_BUILD_FORTRAN_BINDINGS -gt $OMPI_FORTRAN_NO_BINDINGS]) + + # ------------------- + # use mpi final setup + # ------------------- + + # This goes into ompi/Makefile.am + AC_SUBST(OMPI_FORTRAN_USEMPI_DIR) + # This goes into mpifort-wrapper-data.txt + AC_SUBST(OMPI_FORTRAN_USEMPI_LIB) + + # These go into mpi-ignore-tkr-interfaces.h / mpi-ignore-tkr-file-interfaces.h + AC_SUBST(OMPI_FORTRAN_IGNORE_TKR_PREDECL) + AC_SUBST(OMPI_FORTRAN_IGNORE_TKR_TYPE) + + # These go into ompi/info/param.c + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_IGNORE_TKR_PREDECL], + ["$OMPI_FORTRAN_IGNORE_TKR_PREDECL"], + [Pre declaration for FORTRAN ignore parameter TKR behavior]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_IGNORE_TKR_TYPE], + [$type], + [Type declaration for FORTRAN ignore parameter TKR behavior]) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_IGNORE_TKR, + [$OMPI_FORTRAN_HAVE_IGNORE_TKR], + [Whether the Fortran compiler supports ignore TKR functionality or not]) + + # Somewhat redundant because ompi/Makefile.am won't traverse into + # the unused "use mpi" directory, but we might as well have the + # ompi/mpi/fortran/use-mpi*/Makefile.ams be safe, too. + # True if we're building either "use mpi" bindings + AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS, + [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS || \ + test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1]) + # True if we're building the old TKR-style bindings + AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS, + [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \ + test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 0]) + # True if we're building the new ignore-TKR-style bindings + AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS, + [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPI_BINDINGS && \ + test $OMPI_FORTRAN_HAVE_IGNORE_TKR -eq 1]) + + # ------------------- + # use mpi_f08 final setup + # ------------------- + + # This goes into ompi/Makefile.am + AC_SUBST(OMPI_FORTRAN_USEMPIF08_DIR) + # This goes into mpifort-wrapper-data.txt + AC_SUBST(OMPI_FORTRAN_USEMPIF08_LIB) + + # These go into interfaces/mpi-f08-interfaces-[no]bind.h (and + # mpi-f*-interfaces*.h files) + AC_SUBST(OMPI_FORTRAN_F08_PREDECL) + AC_SUBST(OMPI_FORTRAN_F08_TYPE) + + AC_SUBST(OMPI_MPI_PREFIX) + AC_SUBST(OMPI_MPI_BIND_PREFIX) + AC_SUBST(OMPI_F08_SUFFIX) + AC_SUBST(OMPI_F_SUFFIX) + + # This goes into ompi/mpi/fortran/configure-fortran-output.h + AC_SUBST(OMPI_FORTRAN_SUBARRAYS_SUPPORTED) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_SUBARRAYS_SUPPORTED, + [$OMPI_FORTRAN_SUBARRAYS_SUPPORTED], + [Value to load to the MPI_SUBARRAYS_SUPPORTED compile-time constant]) + + # This is used to generate weak symbols (or not) in + # ompi/mpi/fortran/mpif-h/_f.c, and + # ompi/mpi/fortran/configure-fortran-output.h. + AC_SUBST(OMPI_FORTRAN_NEED_WRAPPER_ROUTINES) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_NEED_WRAPPER_ROUTINES, + [$OMPI_FORTRAN_NEED_WRAPPER_ROUTINES], + [Whether the mpi_f08 implementation is using wrapper routines ("bad" Fortran compiler) or weak symbols ("good" Fortran compiler) for the F08 interface definition implementations]) + + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_F08_HANDLE_SIZE, + $OMPI_FORTRAN_F08_HANDLE_SIZE, + [How many bytes the mpi_f08 TYPE(MPI_) handles will be]) + + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_F08_HANDLE_ALIGNMENT, + $OMPI_FORTRAN_F08_HANDLE_ALIGNMENT, + [How many bytes the mpi_f08 TYPE(MPI_) handles will be aligned to]) + + # These go into ompi/info/param.c + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK, + [$OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK], + [For ompi_info: Whether the Fortran compiler supports the Fortran 2008 "assumed rank" syntax or not]) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C, + [$OMPI_FORTRAN_HAVE_BIND_C], + [For ompi_info: Whether the compiler supports all forms of BIND(C) that we need]) + AC_SUBST(OMPI_FORTRAN_HAVE_ISO_C_BINDING) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_ISO_C_BINDING, + [$OMPI_FORTRAN_HAVE_ISO_C_BINDING], + [For ompi_info: Whether the compiler supports ISO_C_BINDING or not]) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_SUB, + [$OMPI_FORTRAN_HAVE_BIND_C_SUB], + [For ompi_info: Whether the compiler supports SUBROUTINE ... BIND(C) or not]) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_TYPE, + [$OMPI_FORTRAN_HAVE_BIND_C_TYPE], + [For ompi_info: Whether the compiler supports TYPE, BIND(C) or not]) + AC_DEFINE_UNQUOTED(OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME, + [$OMPI_FORTRAN_HAVE_BIND_C_TYPE_NAME], + [For ompi_info: Whether the compiler supports TYPE, BIND(C, NAME="name") or not]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_OPTIONAL_ARGS], + [$OMPI_FORTRAN_HAVE_OPTIONAL_ARGS], + [For ompi_info: whether the Fortran compiler supports optional arguments or not]) + + # For configure-fortran-output.h, mpi-f08-types.F90 (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_PRIVATE]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_PRIVATE], + [$OMPI_FORTRAN_HAVE_PRIVATE], + [For mpi-f08-types.f90 and ompi_info: whether the compiler supports the "private" keyword or not (used in MPI_Status)]) + + # For configure-fortran-output.h, mpi-f08-types.F90 (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_PROTECTED]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_PROTECTED], + [$OMPI_FORTRAN_HAVE_PROTECTED], + [For mpi-f08-types.f90 and .F90 and ompi_info: whether the compiler supports the "protected" keyword or not]) + + # For configure-fortran-output.h, mpi-f08-interfaces-callbacks.F90 + # (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_ABSTRACT]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_ABSTRACT], + [$OMPI_FORTRAN_HAVE_ABSTRACT], + [For mpi-f08-interfaces-callbacks.f90 and ompi_info: whether the compiler supports the "abstract" keyword or not]) + + # For configure-fortran-output.h, various files in + # ompi/mpi/fortran/use-mpi-f08/*.F90 and *.h files (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_ASYNCHRONOUS]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_ASYNCHRONOUS], + [$OMPI_FORTRAN_HAVE_ASYNCHRONOUS], + [For ompi/mpi/fortran/use-mpi-f08/blah.F90 and blah.h and ompi_info: whether the compiler supports the "asynchronous" keyword or not]) + + # For configure-fortran-output.h, various files in + # ompi/mpi/fortran/use-mpi-f08/*.F90 and *.h files (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_PROCEDURE]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_PROCEDURE], + [$OMPI_FORTRAN_HAVE_PROCEDURE], + [For ompi/mpi/fortran/use-mpi-f08/blah.F90 and blah.h and ompi_info: whether the compiler supports the "procedure" keyword or not]) + + # For configure-fortran-output.h, various files in + # ompi/mpi/fortran/use-mpi-f08/*.F90 and *.h files (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_USE_ONLY]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_USE_ONLY], + [$OMPI_FORTRAN_HAVE_USE_ONLY], + [For ompi/mpi/fortran/use-mpi-f08/blah.F90 and blah.h and ompi_info: whether the compiler supports "USE ... ONLY" notation properly or not]) + + # For configure-fortran-output.h, various files in + # ompi/mpi/fortran/use-mpi-f08/*.F90 and *.h files (and ompi_info) + AC_SUBST([OMPI_FORTRAN_HAVE_C_FUNLOC]) + AC_DEFINE_UNQUOTED([OMPI_FORTRAN_HAVE_C_FUNLOC], + [$OMPI_FORTRAN_HAVE_C_FUNLOC], + [For ompi/mpi/fortran/use-mpi-f08/blah.F90 and blah.h and ompi_info: whether the compiler supports c_funloc or not]) + + # For configure-fortran-output.h + AC_SUBST(OMPI_FORTRAN_HAVE_BIND_C) + + # Somewhat redundant because ompi/Makefile.am won't traverse into + # ompi/mpi/fortran/use-mpi-f08 if it's not to be built, but we + # might as well have ompi/mpi/fortran/use-mpi-f08/Makefile.am be + # safe, too. + AM_CONDITIONAL(OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS, + [test $OMPI_BUILD_FORTRAN_BINDINGS -ge $OMPI_FORTRAN_USEMPIF08_BINDINGS]) + + AC_DEFINE_UNQUOTED(OMPI_BUILD_FORTRAN_BINDINGS, + $OMPI_BUILD_FORTRAN_BINDINGS, + [The level of fortran bindings to be built]) +]) diff --git a/config/ompi_setup_mpi_profiling.m4 b/config/ompi_setup_mpi_profiling.m4 new file mode 100644 index 00000000..2fc2ba1f --- /dev/null +++ b/config/ompi_setup_mpi_profiling.m4 @@ -0,0 +1,50 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved. +# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +# Copyright (c) 2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OMPI-specific configuration + +AC_DEFUN([OMPI_SETUP_MPI_PROFILING],[ + # There are 2 layers to the MPI Language binidings One layer + # generates MPI_* bindings. The other layer generates PMPI_* + # bindings. The following conditions determine whether each (or + # both) these layers are built. + # 1. MPI_* bindings are needed if: + # - Profiling is not required + # - Profiling is required but weak symbols are not + # supported + # 2. PMPI_* bindings are needed if profiling is required. Hence we + # define 2 conditionals which tell us whether each of these layers + # need to be built or NOT + # + + AM_CONDITIONAL(BUILD_MPI_BINDINGS_LAYER, + test "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1) + + AM_CONDITIONAL(COMPILE_PROFILING_SEPARATELY, + test "$OMPI_PROFILING_COMPILE_SEPARATELY" = 1) + AC_DEFINE_UNQUOTED(OPAL_HAVE_WEAK_SYMBOLS, $OPAL_C_HAVE_WEAK_SYMBOLS, + [Whether we have weak symbols or not]) +]) diff --git a/config/opal_case_sensitive_fs_setup.m4 b/config/opal_case_sensitive_fs_setup.m4 new file mode 100644 index 00000000..d6592e10 --- /dev/null +++ b/config/opal_case_sensitive_fs_setup.m4 @@ -0,0 +1,103 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CASE_SENSITIVE_FS_SETUP],[ +# +# Arguments: none +# +# Dependencies: None +# +# See if we are on a case sensitive filesystem. Some filesystems +# (like HFS+ on MacOS X and MS Windows) are not case sensitive - opalcc +# and opalCC are the same file. +# +# Sets prefix_OS_HAVE_CASE_SENSITIVE_FS to 1 if filesystem is case +# sensitive (ie, mpicc and mpiCC will be different files) or 0 if +# filesystem is not case sensitive (ie, mpicc and mpiCC will be +# the same file). +# +# + +have_cs_fs=1 + +AC_MSG_CHECKING([if build filesystem is case sensitive]) +cat > conf_fs_test.$$ < CONF_FS_TEST.$$ < + /* Check for the longest available __attribute__ (since gcc-2.3) */ + struct foo { + char a; + int x[2] __attribute__ ((__packed__)); + }; + ], + [], + [opal_cv___attribute__=1], + [opal_cv___attribute__=0], + ) + + if test "$opal_cv___attribute__" = "1" ; then + AC_TRY_COMPILE( + [#include + /* Check for the longest available __attribute__ (since gcc-2.3) */ + struct foo { + char a; + int x[2] __attribute__ ((__packed__)); + }; + ], + [], + [opal_cv___attribute__=1], + [opal_cv___attribute__=0], + ) + fi + ]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE, [$opal_cv___attribute__], + [Whether your compiler has __attribute__ or not]) + +# +# Now that we know the compiler support __attribute__ let's check which kind of +# attributed are supported. +# + if test "$opal_cv___attribute__" = "0" ; then + AC_MSG_RESULT([no]) + opal_cv___attribute__aligned=0 + opal_cv___attribute__always_inline=0 + opal_cv___attribute__cold=0 + opal_cv___attribute__const=0 + opal_cv___attribute__deprecated=0 + opal_cv___attribute__deprecated_argument=0 + opal_cv___attribute__format=0 + opal_cv___attribute__format_funcptr=0 + opal_cv___attribute__hot=0 + opal_cv___attribute__malloc=0 + opal_cv___attribute__may_alias=0 + opal_cv___attribute__no_instrument_function=0 + opal_cv___attribute__noinline=0 + opal_cv___attribute__nonnull=0 + opal_cv___attribute__noreturn=0 + opal_cv___attribute__noreturn_funcptr=0 + opal_cv___attribute__packed=0 + opal_cv___attribute__pure=0 + opal_cv___attribute__sentinel=0 + opal_cv___attribute__unused=0 + opal_cv___attribute__visibility=0 + opal_cv___attribute__warn_unused_result=0 + opal_cv___attribute__weak_alias=0 + opal_cv___attribute__destructor=0 + else + AC_MSG_RESULT([yes]) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([aligned], + [struct foo { char text[4]; } __attribute__ ((__aligned__(8)));], + [], + []) + + # + # Ignored by PGI-6.2.5; -- recognized by output-parser + # + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([always_inline], + [int foo (int arg) __attribute__ ((__always_inline__));], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([cold], + [ + int foo(int arg1, int arg2) __attribute__ ((__cold__)); + int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; } + ], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([const], + [ + int foo(int arg1, int arg2) __attribute__ ((__const__)); + int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; } + ], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([deprecated], + [ + int foo(int arg1, int arg2) __attribute__ ((__deprecated__)); + int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; } + ], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([deprecated_argument], + [ + int foo(int arg1, int arg2) __attribute__ ((__deprecated__("compiler allows argument"))); + int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; } + ], + [], + []) + + ATTRIBUTE_CFLAGS= + case "$opal_c_vendor" in + gnu) + ATTRIBUTE_CFLAGS="-Wall" + ;; + intel) + # we want specifically the warning on format string conversion + ATTRIBUTE_CFLAGS="-we181" + ;; + esac + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([format], + [ + int this_printf (void *my_object, const char *my_format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); + ], + [ + static int usage (int * argument); + extern int this_printf (int arg1, const char *my_format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); + + static int usage (int * argument) { + return this_printf (*argument, "%d", argument); /* This should produce a format warning */ + } + /* The autoconf-generated main-function is int main(), which produces a warning by itself */ + int main(void); + ], + [$ATTRIBUTE_CFLAGS]) + + ATTRIBUTE_CFLAGS= + case "$opal_c_vendor" in + gnu) + ATTRIBUTE_CFLAGS="-Wall" + ;; + intel) + # we want specifically the warning on format string conversion + ATTRIBUTE_CFLAGS="-we181" + ;; + esac + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([format_funcptr], + [ + int (*this_printf)(void *my_object, const char *my_format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); + ], + [ + static int usage (int * argument); + extern int (*this_printf) (int arg1, const char *my_format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); + + static int usage (int * argument) { + return (*this_printf) (*argument, "%d", argument); /* This should produce a format warning */ + } + /* The autoconf-generated main-function is int main(), which produces a warning by itself */ + int main(void); + ], + [$ATTRIBUTE_CFLAGS]) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([hot], + [ + int foo(int arg1, int arg2) __attribute__ ((__hot__)); + int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; } + ], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([malloc], + [ +#ifdef HAVE_STDLIB_H +# include +#endif + int * foo(int arg1) __attribute__ ((__malloc__)); + int * foo(int arg1) { return (int*) malloc(arg1); } + ], + [], + []) + + + # + # Attribute may_alias: No suitable cross-check available, that works for non-supporting compilers + # Ignored by intel-9.1.045 -- turn off with -wd1292 + # Ignored by PGI-6.2.5; ignore not detected due to missing cross-check + # + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([may_alias], + [int * p_value __attribute__ ((__may_alias__));], + [], + []) + + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([no_instrument_function], + [int * foo(int arg1) __attribute__ ((__no_instrument_function__));], + [], + []) + + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([noinline], + [ + int foo(int arg1, int arg2) __attribute__ ((__noinline__)); + int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; } + static int bar(int arg1, int arg2) __attribute__ ((__noinline__)); + static int bar(int arg1, int arg2) { return arg1 * arg2 + arg1; } + ], + [], + []) + + # + # Attribute nonnull: + # Ignored by intel-compiler 9.1.045 -- recognized by cross-check + # Ignored by PGI-6.2.5 (pgCC) -- recognized by cross-check + # + ATTRIBUTE_CFLAGS= + case "$opal_c_vendor" in + gnu) + ATTRIBUTE_CFLAGS="-Wall" + ;; + intel) + # we do not want to get ignored attributes warnings, but rather real warnings + ATTRIBUTE_CFLAGS="-wd1292" + ;; + esac + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([nonnull], + [ + int square(int *arg) __attribute__ ((__nonnull__)); + int square(int *arg) { return *arg; } + ], + [ + static int usage(int * argument); + int square(int * argument) __attribute__ ((__nonnull__)); + int square(int * argument) { return (*argument) * (*argument); } + + static int usage(int * argument) { + return square( ((void*)0) ); /* This should produce an argument must be nonnull warning */ + } + /* The autoconf-generated main-function is int main(), which produces a warning by itself */ + int main(void); + ], + [$ATTRIBUTE_CFLAGS]) + + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([noreturn], + [ +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif + void fatal(int arg1) __attribute__ ((__noreturn__)); + void fatal(int arg1) { exit(arg1); } + ], + [], + []) + + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([noreturn_funcptr], + [ +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif + extern void (*fatal_exit)(int arg1) __attribute__ ((__noreturn__)); + void fatal(int arg1) { fatal_exit (arg1); } + ], + [], + [$ATTRIBUTE_CFLAGS]) + + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([packed], + [ + struct foo { + char a; + int x[2] __attribute__ ((__packed__)); + }; + ], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([pure], + [ + int square(int arg) __attribute__ ((__pure__)); + int square(int arg) { return arg * arg; } + ], + [], + []) + + # + # Attribute sentinel: + # Ignored by the intel-9.1.045 -- recognized by cross-check + # intel-10.0beta works fine + # Ignored by PGI-6.2.5 (pgCC) -- recognized by output-parser and cross-check + # Ignored by pathcc-2.2.1 -- recognized by cross-check (through grep ignore) + # + ATTRIBUTE_CFLAGS= + case "$opal_c_vendor" in + gnu) + ATTRIBUTE_CFLAGS="-Wall" + ;; + intel) + # we do not want to get ignored attributes warnings + ATTRIBUTE_CFLAGS="-wd1292" + ;; + esac + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([sentinel], + [ + int my_execlp(const char * file, const char *arg, ...) __attribute__ ((__sentinel__)); + ], + [ + static int usage(int * argument); + int my_execlp(const char * file, const char *arg, ...) __attribute__ ((__sentinel__)); + + static int usage(int * argument) { + void * last_arg_should_be_null = argument; + return my_execlp ("lala", "/home/there", last_arg_should_be_null); /* This should produce a warning */ + } + /* The autoconf-generated main-function is int main(), which produces a warning by itself */ + int main(void); + ], + [$ATTRIBUTE_CFLAGS]) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([unused], + [ + int square(int arg1 __attribute__ ((__unused__)), int arg2); + int square(int arg1, int arg2) { return arg2; } + ], + [], + []) + + + # + # Ignored by PGI-6.2.5 (pgCC) -- recognized by the output-parser + # + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([visibility], + [ + int square(int arg1) __attribute__ ((__visibility__("hidden"))); + ], + [], + []) + + + # + # Attribute warn_unused_result: + # Ignored by the intel-compiler 9.1.045 -- recognized by cross-check + # Ignored by pathcc-2.2.1 -- recognized by cross-check (through grep ignore) + # + ATTRIBUTE_CFLAGS= + case "$opal_c_vendor" in + gnu) + ATTRIBUTE_CFLAGS="-Wall" + ;; + intel) + # we do not want to get ignored attributes warnings + ATTRIBUTE_CFLAGS="-wd1292" + ;; + esac + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([warn_unused_result], + [ + int foo(int arg) __attribute__ ((__warn_unused_result__)); + int foo(int arg) { return arg + 3; } + ], + [ + static int usage(int * argument); + int foo(int arg) __attribute__ ((__warn_unused_result__)); + + int foo(int arg) { return arg + 3; } + static int usage(int * argument) { + foo (*argument); /* Should produce an unused result warning */ + return 0; + } + + /* The autoconf-generated main-function is int main(), which produces a warning by itself */ + int main(void); + ], + [$ATTRIBUTE_CFLAGS]) + + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([weak_alias], + [ + int foo(int arg); + int foo(int arg) { return arg + 3; } + int foo2(int arg) __attribute__ ((__weak__, __alias__("foo"))); + ], + [], + []) + + _OPAL_CHECK_SPECIFIC_ATTRIBUTE([destructor], + [ + void foo(void) __attribute__ ((__destructor__)); + void foo(void) { return ; } + ], + [], + []) + fi + + # Now that all the values are set, define them + + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_ALIGNED, [$opal_cv___attribute__aligned], + [Whether your compiler has __attribute__ aligned or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_ALWAYS_INLINE, [$opal_cv___attribute__always_inline], + [Whether your compiler has __attribute__ always_inline or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_COLD, [$opal_cv___attribute__cold], + [Whether your compiler has __attribute__ cold or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_CONST, [$opal_cv___attribute__const], + [Whether your compiler has __attribute__ const or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_DEPRECATED, [$opal_cv___attribute__deprecated], + [Whether your compiler has __attribute__ deprecated or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_DEPRECATED_ARGUMENT, [$opal_cv___attribute__deprecated_argument], + [Whether your compiler has __attribute__ deprecated with optional argument]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_FORMAT, [$opal_cv___attribute__format], + [Whether your compiler has __attribute__ format or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_FORMAT_FUNCPTR, [$opal_cv___attribute__format_funcptr], + [Whether your compiler has __attribute__ format and it works on function pointers]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_HOT, [$opal_cv___attribute__hot], + [Whether your compiler has __attribute__ hot or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_MALLOC, [$opal_cv___attribute__malloc], + [Whether your compiler has __attribute__ malloc or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_MAY_ALIAS, [$opal_cv___attribute__may_alias], + [Whether your compiler has __attribute__ may_alias or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION, [$opal_cv___attribute__no_instrument_function], + [Whether your compiler has __attribute__ no_instrument_function or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_NOINLINE, [$opal_cv___attribute__noinline], + [Whether your compiler has __attribute__ noinline or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_NONNULL, [$opal_cv___attribute__nonnull], + [Whether your compiler has __attribute__ nonnull or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_NORETURN, [$opal_cv___attribute__noreturn], + [Whether your compiler has __attribute__ noreturn or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_NORETURN_FUNCPTR, [$opal_cv___attribute__noreturn_funcptr], + [Whether your compiler has __attribute__ noreturn and it works on function pointers]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_PACKED, [$opal_cv___attribute__packed], + [Whether your compiler has __attribute__ packed or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_PURE, [$opal_cv___attribute__pure], + [Whether your compiler has __attribute__ pure or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_SENTINEL, [$opal_cv___attribute__sentinel], + [Whether your compiler has __attribute__ sentinel or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_UNUSED, [$opal_cv___attribute__unused], + [Whether your compiler has __attribute__ unused or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_VISIBILITY, [$opal_cv___attribute__visibility], + [Whether your compiler has __attribute__ visibility or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT, [$opal_cv___attribute__warn_unused_result], + [Whether your compiler has __attribute__ warn unused result or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_WEAK_ALIAS, [$opal_cv___attribute__weak_alias], + [Whether your compiler has __attribute__ weak alias or not]) + AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_DESTRUCTOR, [$opal_cv___attribute__destructor], + [Whether your compiler has __attribute__ destructor or not]) +]) diff --git a/config/opal_check_broken_qsort.m4 b/config/opal_check_broken_qsort.m4 new file mode 100644 index 00000000..7d70c6a0 --- /dev/null +++ b/config/opal_check_broken_qsort.m4 @@ -0,0 +1,54 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl +dnl There was some mentioning of broken qsort happened for Solaris that could +dnl cause qsort to return a bad pointer which could cause some badness. +dnl The problem should have been corrected with these patches from SunSolve. +dnl Solaris 10 should be free from this problem. +dnl +dnl 5.8_sparc #108827-27 or later +dnl 5.8_x86 #108828-28 or later +dnl 5.9_sparc #112874-20 or later +dnl 5.9_x86 #114432-07 or later +dnl +dnl For users who could not patch their systems or are convinced that their +dnl native qsort is broken, they could specify this configure flag to use +dnl the opal_qsort instead. + +# check for broken qsort +# OPAL_CHECK_BROKEN_QSORT(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_BROKEN_QSORT],[ + AC_ARG_WITH([broken-qsort], + [AC_HELP_STRING([--with-broken-qsort], + [Build with FreeBSD qsort instead of native qsort (default: no)])]) + AC_MSG_CHECKING([for broken qsort]) + + if test "$with_broken_qsort" = "yes"; then + result="yes" + define_result=1 + else + result="no" + define_result=0 + fi + AC_MSG_RESULT([$result]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_BROKEN_QSORT], [$define_result], + [whether qsort is broken or not]) +]) diff --git a/config/opal_check_cma.m4 b/config/opal_check_cma.m4 new file mode 100644 index 00000000..2930debf --- /dev/null +++ b/config/opal_check_cma.m4 @@ -0,0 +1,132 @@ +# -*- shell-script -*- +# +# Copyright (c) 2009 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2010-2012 IBM Corporation. All rights reserved. +# Copyright (c) 2013-2016 Los Alamos National Security, LLC. All rights +# reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OPAL_CHECK_CMA(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if cma support is wanted. +AC_DEFUN([OPAL_CHECK_CMA],[ + AC_ARG_WITH([cma], + [AC_HELP_STRING([--with-cma], + [Build Cross Memory Attach support (default: autodetect)])]) + + # We only need to do the back-end test once + if test -z "$opal_check_cma_happy" ; then + OPAL_CHECK_CMA_BACKEND + fi + + AS_IF([test $opal_check_cma_happy -eq 1], + [$2], + [if test "$with_cma" = "yes"; then + AC_MSG_WARN([--with-cma support requested, but not available]) + AC_MSG_ERROR([Cannot continue]) + fi + $3]) +]) + +AC_DEFUN([OPAL_CHECK_CMA_BACKEND], +[ + OPAL_VAR_SCOPE_PUSH([opal_check_cma_need_defs opal_check_cma_kernel_version opal_check_cma_CFLAGS opal_check_cma_msg]) + + # Some systems have process_cm_readv() in libc, which means CMA is + # supported. Other systems do not have process_cm_readv() in + # libc, but have support for it in the kernel if we invoke it + # directly. Check for both. + AC_CHECK_HEADERS([sys/prctl.h]) + + AC_CHECK_FUNC([process_vm_readv], [opal_check_cma_need_defs=0], + [opal_check_cma_need_defs=1]) + AC_DEFINE_UNQUOTED([OPAL_CMA_NEED_SYSCALL_DEFS], + [$opal_check_cma_need_defs], + [Need CMA syscalls defined]) + if test $opal_check_cma_need_defs -eq 1 ; then + opal_check_cma_CFLAGS=$CFLAGS + # Need some extra include paths to locate the appropriate headers + CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/opal/include" + AC_MSG_CHECKING([if internal syscall numbers for Linux CMA work]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#include +#include + +#include +#include +#include + +#include "opal/include/opal/sys/cma.h" + +static void do_check (pid_t pid, int *in, int *out) +{ + int check[4] = {0, 0, 0, 0}, i; + struct iovec rem_iov = {out, sizeof (check)}; + struct iovec loc_iov = {check, sizeof (check)}; + ssize_t rc; + + rc = process_vm_readv (pid, &loc_iov, 1, &rem_iov, 1, 0); + if (sizeof (check) != rc) { + exit (1); + } + + for (i = 0 ; i < 4 ; ++i) { + if (check[i] != i) { + exit (1); + } + + check[i] = i * 2; + } + + rem_iov.iov_base = in; + rc = process_vm_writev (pid, &loc_iov, 1, &rem_iov, 1, 0); + if (sizeof (check) != rc) { + exit (1); + } + + exit (0); +} +]],[[ + int i, in[4] = {-1, -1, -1, -1}, out[4] = {0, 1, 2, 3}; + + do_check (getpid (), in, out); + + for (i = 0 ; i < 4 ; ++i) { + if (in[i] != 2 * i) { + return 1; + } + } + + /* all good */ + return 0; +]])], + [AC_MSG_RESULT([yes]) + opal_check_cma_happy=1], + [AC_MSG_RESULT([no]) + opal_check_cma_happy=0], + [AC_MSG_RESULT([no (cross-compiling)]) + opal_check_cma_happy=0]) + CFLAGS=$opal_check_cma_CFLAGS + else + # If we didn't need the defs, then we have process_vm_readv(), + # and CMA is happy. + opal_check_cma_happy=1 + fi + + OPAL_VAR_SCOPE_POP + + AS_IF([test $opal_check_cma_happy -eq 1], + [opal_check_cma_msg=yes], + [opal_check_cma_msg=no]) + OPAL_SUMMARY_ADD([[Transports]],[[Shared memory/Linux CMA]],[$1],[$opal_check_cma_msg]) +]) diff --git a/config/opal_check_compiler_version.m4 b/config/opal_check_compiler_version.m4 new file mode 100644 index 00000000..da8321cd --- /dev/null +++ b/config/opal_check_compiler_version.m4 @@ -0,0 +1,123 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +# OPAL_CHECK_COMPILER_VERSION_ID() +# ---------------------------------------------------- +# Try to figure out the compiler's name and version to detect cases, +# where users compile Open MPI with one version and compile the application +# with a different compiler. +# +AC_DEFUN([OPAL_CHECK_COMPILER_VERSION_ID], +[ + OPAL_CHECK_COMPILER(FAMILYID) + OPAL_CHECK_COMPILER_STRINGIFY(FAMILYNAME) + OPAL_CHECK_COMPILER(VERSION) + OPAL_CHECK_COMPILER_STRING(VERSION_STR) +])dnl + + +AC_DEFUN([OPAL_CHECK_COMPILER], [ + lower=m4_tolower($1) + AC_CACHE_CHECK([for compiler $lower], opal_cv_compiler_[$1], + [ + CPPFLAGS_orig=$CPPFLAGS + CPPFLAGS="-I${OPAL_TOP_SRCDIR}/opal/include/opal $CPPFLAGS" + AC_TRY_RUN([ +#include +#include +#include "opal_portable_platform.h" + +int main (int argc, char * argv[]) +{ + FILE * f; + f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf (f, "%d", PLATFORM_COMPILER_$1); + return 0; +} + ], [ + eval opal_cv_compiler_$1=`cat conftestval`; + ], [ + eval opal_cv_compiler_$1=0 + ], [ + eval opal_cv_compiler_$1=0 + ]) + CPPFLAGS=$CPPFLAGS_orig + ]) + AC_DEFINE_UNQUOTED([OPAL_BUILD_PLATFORM_COMPILER_$1], $opal_cv_compiler_[$1], + [The compiler $lower which OMPI was built with]) +])dnl + +AC_DEFUN([OPAL_CHECK_COMPILER_STRING], [ + lower=m4_tolower($1) + AC_CACHE_CHECK([for compiler $lower], opal_cv_compiler_[$1], + [ + CPPFLAGS_orig=$CPPFLAGS + CPPFLAGS="-I${OPAL_TOP_SRCDIR}/opal/include/opal $CPPFLAGS" + AC_TRY_RUN([ +#include +#include +#include "opal_portable_platform.h" + +int main (int argc, char * argv[]) +{ + FILE * f; + f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf (f, "%s", PLATFORM_COMPILER_$1); + return 0; +} + ], [ + eval opal_cv_compiler_$1=`cat conftestval`; + ], [ + eval opal_cv_compiler_$1=UNKNOWN + ], [ + eval opal_cv_compiler_$1=UNKNOWN + ]) + CPPFLAGS=$CPPFLAGS_orig + ]) + AC_DEFINE_UNQUOTED([OPAL_BUILD_PLATFORM_COMPILER_$1], $opal_cv_compiler_[$1], + [The compiler $lower which OMPI was built with]) +])dnl + + +AC_DEFUN([OPAL_CHECK_COMPILER_STRINGIFY], [ + lower=m4_tolower($1) + AC_CACHE_CHECK([for compiler $lower], opal_cv_compiler_[$1], + [ + CPPFLAGS_orig=$CPPFLAGS + CPPFLAGS="-I${OPAL_TOP_SRCDIR}/opal/include/opal $CPPFLAGS" + AC_TRY_RUN([ +#include +#include +#include "opal_portable_platform.h" + +int main (int argc, char * argv[]) +{ + FILE * f; + f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf (f, "%s", _STRINGIFY(PLATFORM_COMPILER_$1)); + return 0; +} + ], [ + eval opal_cv_compiler_$1=`cat conftestval`; + ], [ + eval opal_cv_compiler_$1=UNKNOWN + ], [ + eval opal_cv_compiler_$1=UNKNOWN + ]) + CPPFLAGS=$CPPFLAGS_orig + ]) + AC_DEFINE_UNQUOTED([OPAL_BUILD_PLATFORM_COMPILER_$1], $opal_cv_compiler_[$1], + [The compiler $lower which OMPI was built with]) +])dnl diff --git a/config/opal_check_compiler_works.m4 b/config/opal_check_compiler_works.m4 new file mode 100644 index 00000000..f632c0c8 --- /dev/null +++ b/config/opal_check_compiler_works.m4 @@ -0,0 +1,57 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2006 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_CHECK_COMPILER_WORKS(language, headers, body, +# [action-if-found], [action-if-not-found]) +# ---------------------------------------------------- +# Try to compile and run a simple application in 'language'. A +# warning is always printed if the application fails to run. +# Action-if-found is evaluated if the application runs successfully +# (or compiles if cross-compiling), and action-if-not-found is +# evaluated if the application fails to run. +# +# headers are any headers needed to compile the body (e.g., #include +# statements), and body is the program to compile. It should include +# a clean exit from the application (e.g., "return 0" in C/C++, empty in +# fortran). +AC_DEFUN([OPAL_CHECK_COMPILER_WORKS], +[ AS_VAR_PUSHDEF([lang_var], [opal_cv_$1_works]) + + AC_CACHE_CHECK([if $1 compiler works], lang_var, + [AC_LANG_PUSH($1) + AC_RUN_IFELSE([AC_LANG_PROGRAM([$2], [$3])], + [AS_VAR_SET(lang_var, ["yes"])], + [AS_VAR_SET(lang_var, ["no"])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([$2], [$3])], + [AS_VAR_SET(lang_var, ["links (cross compiling)"])], + [AS_VAR_SET(lang_var, ["no"])])]) + AC_LANG_POP($1)]) + AS_VAR_IF(lang_var, [no], + [cat <&2 +********************************************************************** +* It appears that your $1 compiler is unable to produce working +* executables. A simple test application failed to properly +* execute. Note that this is likely not a problem with Open MPI, +* but a problem with the local compiler installation. More +* information (including exactly what command was given to the +* compiler and what error resulted when the command was executed) is +* available in the config.log file in the Open MPI build directory. +********************************************************************** +EOF + $5], [$4]) + + AS_VAR_POPDEF([lang_var])dnl +]) diff --git a/config/opal_check_cray_pmi.m4 b/config/opal_check_cray_pmi.m4 new file mode 100644 index 00000000..8e3dfee5 --- /dev/null +++ b/config/opal_check_cray_pmi.m4 @@ -0,0 +1,107 @@ +dnl -*- shell-script ; indent-tabs-mode:nil -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2009-2011 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved. +dnl Copyright (c) 2014-2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CHECK_CRAY_PMI_EXPLICIT],[ + + opal_cray_pmi_lib_good=0 + opal_cray_pmi_include_good=0 + + AC_MSG_CHECKING([Checking for Cray PMI with explicit path $with_cray_pmi]) + AS_IF([test -d "$with_cray_pmi/lib64"], + [opal_cray_pmi_lib_good=1], + [opal_cray_pmi_lib_good=0 + AC_MSG_WARN([No libpmi in path specified by $with_cray_pmi])]) + + AS_IF([test -f "$with_cray_pmi/include/pmi.h"], + [opal_cray_pmi_include_good=1], + [opal_cray_pmi_include_good=0 + AC_MSG_WARN([No pmi.h in path specified by $with_cray_pmi])]) + + AS_IF([test "$opal_cray_pmi_lib_good" -eq 1 && test "$opal_cray_pmi_include_good" -eq 1], + [CRAY_PMI_LDFLAGS="-L$with_cray_pmi/lib64 -L/usr/lib/alps" + CRAY_PMI_LIBS="-L$with_cray_pmi/lib64 -lpmi" + CRAY_PMI_CFLAGS="-I $with_cray_pmi/include" + $1], + [$2]) + +# +# this logic assumes knowledge about all the dependencies of the Cray PMI library, +# something that Cray doesn't generally document +# + AS_IF([test "$enable_static" = "yes"], + [AS_IF([test -d /usr/lib/alps], + [AC_MSG_RESULT([Detected presense of /usr/lib/alps]) + CRAY_PMI_LDFLAGS="$CRAY_PMI_LDFLAGS -L/usr/lib/alps -lalpslli -lalpsutil" + CRAY_PMI_LIBS="$CRAY_PMI_LIBS -L/usr/lib/alps -lalpslli -lalpsutil"], + [AS_IF([test -d /opt/cray/xe-sysroot/default/usr/lib/alps], + [AC_MSG_RESULT([Detected presense of /opt/cray/xe-sysroot/default/usr/lib/alps]) + CRAY_PMI_LDFLAGS="$CRAY_PMI_LDFLAGS -L/opt/cray/xe-sysroot/default/usr/lib/alps -lalpslli -lalpsutil" + CRAY_PMI_LIBS="$CRAY_PMI_LIBS -L/opt/cray/xe-sysroot/default/usr/lib/alps -lalpslli -lalpsutil"], + [AC_MSG_ERROR([Requested enabling static linking but unable to local libalpslli and libalpsutil])]) + ]) + ]) +]) + +# +# special check for cray pmi, uses macro(s) from pkg.m4 +# +# OPAL_CHECK_CRAY_PMI(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_CRAY_PMI],[ + AC_ARG_WITH([cray_pmi], + [AC_HELP_STRING([--with-cray-pmi(=DIR)], + [Build Cray PMI support, optionally adding DIR to the search path (default: auto)])], + [], with_cray_pmi=auto) + AC_MSG_CHECKING([for Cray PMI support]) + AS_IF([test "$with_cray_pmi" = "no"], + [AC_MSG_RESULT([no]) + $3], + [AS_IF([test "$with_cray_pmi" = "auto" || test "$with_cray_pmi" = "yes"], + [PKG_CHECK_MODULES_STATIC([CRAY_PMI], [cray-pmi], + [opal_check_cray_pmi_happy="yes"], + [opal_check_cray_pmi_happy="no"] + [AS_IF([test "$with_cray_pmi" = "yes"], + [AC_MSG_WARN([Cray PMI support requested but pkg-config failed.]) + AC_MSG_WARN([Need to explicitly indicate cray pmi directory]) + AC_MSG_WARN([on the configure line using --with-cray-pmi option.]) + AC_MSG_ERROR([Aborting])],[])] + )], + [OPAL_CHECK_CRAY_PMI_EXPLICIT([opal_check_cray_pmi_happy="yes"], + [opal_check_cray_pmi_happy="no"]) + AC_MSG_WARN([opal_chack_cray_pmi_happy = $opal_check_cray_pmi_happy])]) + ]) + + AS_IF([test "$opal_check_cray_pmi_happy" = "yes" && test "$enable_static" = "yes"], + [CRAY_PMI_LIBS = $CRAY_PMI_STATIC_LIBS],[]) + + AS_IF([test "$opal_check_cray_pmi_happy" = "yes"], + [$1_LDFLAGS="$CRAY_PMI_LIBS" + $1_CPPFLAGS="$CRAY_PMI_CFLAGS" + $1_LIBS="$CRAY_PMI_LIBS" + $2], [$3]) +]) + + + diff --git a/config/opal_check_cuda.m4 b/config/opal_check_cuda.m4 new file mode 100644 index 00000000..fd7816e3 --- /dev/null +++ b/config/opal_check_cuda.m4 @@ -0,0 +1,165 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009 IBM Corporation. All rights reserved. +dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2009-2011 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2011-2015 NVIDIA Corporation. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CHECK_CUDA],[ +# +# Check to see if user wants CUDA support +# +AC_ARG_WITH([cuda], + [AC_HELP_STRING([--with-cuda(=DIR)], + [Build cuda support, optionally adding DIR/include])]) +AC_MSG_CHECKING([if --with-cuda is set]) + +# Note that CUDA support is off by default. To turn it on, the user has to +# request it. The user can just ask for --with-cuda and it that case we +# look for the cuda.h file in /usr/local/cuda. Otherwise, they can give +# us a directory. If they provide a directory, we will look in that directory +# as well as the directory with the "include" string appended to it. The fact +# that we check in two directories precludes us from using the OMPI_CHECK_DIR +# macro as that would error out after not finding it in the first directory. +# Note that anywhere CUDA aware code is in the Open MPI repository requires +# us to make use of AC_REQUIRE to ensure this check has been done. +AS_IF([test "$with_cuda" = "no" || test "x$with_cuda" = "x"], + [opal_check_cuda_happy="no" + AC_MSG_RESULT([not set (--with-cuda=$with_cuda)])], + [AS_IF([test "$with_cuda" = "yes"], + [AS_IF([test "x`ls /usr/local/cuda/include/cuda.h 2> /dev/null`" = "x"], + [AC_MSG_RESULT([not found in standard location]) + AC_MSG_WARN([Expected file /usr/local/cuda/include/cuda.h not found]) + AC_MSG_ERROR([Cannot continue])], + [AC_MSG_RESULT([found]) + opal_check_cuda_happy=yes + opal_cuda_incdir=/usr/local/cuda/include])], + [AS_IF([test ! -d "$with_cuda"], + [AC_MSG_RESULT([not found]) + AC_MSG_WARN([Directory $with_cuda not found]) + AC_MSG_ERROR([Cannot continue])], + [AS_IF([test "x`ls $with_cuda/include/cuda.h 2> /dev/null`" = "x"], + [AS_IF([test "x`ls $with_cuda/cuda.h 2> /dev/null`" = "x"], + [AC_MSG_RESULT([not found]) + AC_MSG_WARN([Could not find cuda.h in $with_cuda/include or $with_cuda]) + AC_MSG_ERROR([Cannot continue])], + [opal_check_cuda_happy=yes + opal_cuda_incdir=$with_cuda + AC_MSG_RESULT([found ($with_cuda/cuda.h)])])], + [opal_check_cuda_happy=yes + opal_cuda_incdir="$with_cuda/include" + AC_MSG_RESULT([found ($opal_cuda_incdir/cuda.h)])])])])]) + +dnl We cannot have CUDA support without dlopen support. HOWEVER, at +dnl this point in configure, we can't know whether the DL framework +dnl has been configured or not yet (it likely hasn't, since CUDA is a +dnl common framework, and likely configured first). So we have to +dnl defer this check until later (see the OPAL_CHECK_CUDA_AFTER_OPAL_DL m4 +dnl macro, below). :-( + +# We require CUDA IPC support which started in CUDA 4.1. Error +# out if the support is not there. +AS_IF([test "$opal_check_cuda_happy" = "yes"], + [AC_CHECK_MEMBER([struct CUipcMemHandle_st.reserved], + [], + [AC_MSG_ERROR([Cannot continue because CUDA 4.1 or later is required])], + [#include <$opal_cuda_incdir/cuda.h>])], + []) + +# If we have CUDA support, check to see if we have support for SYNC_MEMOPS +# which was first introduced in CUDA 6.0. +AS_IF([test "$opal_check_cuda_happy"="yes"], + AC_CHECK_DECL([CU_POINTER_ATTRIBUTE_SYNC_MEMOPS], [CUDA_SYNC_MEMOPS=1], [CUDA_SYNC_MEMOPS=0], + [#include <$opal_cuda_incdir/cuda.h>]), + []) + +# If we have CUDA support, check to see if we have CUDA 6.0 or later. +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <$opal_cuda_incdir/cuda.h>]], + [[ +#if CUDA_VERSION < 6000 +#error "CUDA_VERSION is less than 6000" +#endif + ]])], + [CUDA_VERSION_60_OR_GREATER=1], + [CUDA_VERSION_60_OR_GREATER=0]) + +# If we have CUDA support, check to see if we have support for cuPointerGetAttributes +# which was first introduced in CUDA 7.0. +AS_IF([test "$opal_check_cuda_happy"="yes"], + AC_CHECK_DECL([cuPointerGetAttributes], [CUDA_GET_ATTRIBUTES=1], [CUDA_GET_ATTRIBUTES=0], + [#include <$opal_cuda_incdir/cuda.h>]), + []) + +AC_MSG_CHECKING([if have cuda support]) +if test "$opal_check_cuda_happy" = "yes"; then + AC_MSG_RESULT([yes (-I$opal_cuda_incdir)]) + CUDA_SUPPORT=1 + opal_datatype_cuda_CPPFLAGS="-I$opal_cuda_incdir" + AC_SUBST([opal_datatype_cuda_CPPFLAGS]) +else + AC_MSG_RESULT([no]) + CUDA_SUPPORT=0 +fi + +OPAL_SUMMARY_ADD([[Miscellaneous]],[[CUDA support]],[opal_cuda], [$opal_check_cuda_happy]) + +AM_CONDITIONAL([OPAL_cuda_support], [test "x$CUDA_SUPPORT" = "x1"]) +AC_DEFINE_UNQUOTED([OPAL_CUDA_SUPPORT],$CUDA_SUPPORT, + [Whether we want cuda device pointer support]) + +AM_CONDITIONAL([OPAL_cuda_sync_memops], [test "x$CUDA_SYNC_MEMOPS" = "x1"]) +AC_DEFINE_UNQUOTED([OPAL_CUDA_SYNC_MEMOPS],$CUDA_SYNC_MEMOPS, + [Whether we have CUDA CU_POINTER_ATTRIBUTE_SYNC_MEMOPS support available]) + +AM_CONDITIONAL([OPAL_cuda_get_attributes], [test "x$CUDA_GET_ATTRIBUTES" = "x1"]) +AC_DEFINE_UNQUOTED([OPAL_CUDA_GET_ATTRIBUTES],$CUDA_GET_ATTRIBUTES, + [Whether we have CUDA cuPointerGetAttributes function available]) + +# There is nothing specific we can check for to see if GPU Direct RDMA is available. +# Therefore, we check to see whether we have CUDA 6.0 or later. +AM_CONDITIONAL([OPAL_cuda_gdr_support], [test "x$CUDA_VERSION_60_OR_GREATER" = "x1"]) +AC_DEFINE_UNQUOTED([OPAL_CUDA_GDR_SUPPORT],$CUDA_VERSION_60_OR_GREATER, + [Whether we have CUDA GDR support available]) + +]) + +dnl +dnl CUDA support requires DL support (it dynamically opens the CUDA +dnl library at run time). But we do not check for OPAL DL support +dnl until lafter the initial OPAL_CHECK_CUDA is called. So put the +dnl CUDA+DL check in a separate macro that can be called after the DL MCA +dnl framework checks in the top-level configure.ac. +dnl +AC_DEFUN([OPAL_CHECK_CUDA_AFTER_OPAL_DL],[ + + # We cannot have CUDA support without OPAL DL support. Error out + # if the user wants CUDA but we do not have OPAL DL support. + AS_IF([test $OPAL_HAVE_DL_SUPPORT -eq 0 && \ + test "$opal_check_cuda_happy" = "yes"], + [AC_MSG_WARN([--with-cuda was specified, but dlopen support is disabled.]) + AC_MSG_WARN([You must reconfigure Open MPI with dlopen ("dl") support.]) + AC_MSG_ERROR([Cannot continue.])]) +]) diff --git a/config/opal_check_icc.m4 b/config/opal_check_icc.m4 new file mode 100644 index 00000000..9c60fa29 --- /dev/null +++ b/config/opal_check_icc.m4 @@ -0,0 +1,60 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CHECK_ICC_VARARGS],[ +dnl +dnl On EM64T, icc-8.1 before version 8.1.027 segfaulted, since +dnl va_start was miscompiled... +dnl +AC_MSG_CHECKING([whether icc-8.1 for EM64T works with variable arguments]) +AC_TRY_RUN([ +#include +#include +#include + +void func (int c, char * f, ...) +{ + va_list arglist; + va_start (arglist, f); + /* vprintf (f, arglist); */ + va_end (arglist); +} + +int main () +{ + FILE *f; + func (4711, "Help %d [%s]\n", 10, "ten"); + f=fopen ("conftestval", "w"); + if (!f) exit (1); + return 0; +} + +],[opal_ac_icc_varargs=`test -f conftestval`],[opal_ac_icc_varargs=1],[opal_ac_icc_varargs=1]) + +if test "$opal_ac_icc_varargs" = "1"; then + AC_MSG_WARN([*** Problem running configure test!]) + AC_MSG_WARN([*** Your icc-8.1 compiler seems to miscompile va_start!]) + AC_MSG_WARN([*** Please upgrade compiler to at least version 8.1.027]) + AC_MSG_ERROR([*** Cannot continue.]) +fi + +AC_MSG_RESULT([yes]) + +rm -rf conftest*])dnl diff --git a/config/opal_check_ident.m4 b/config/opal_check_ident.m4 new file mode 100644 index 00000000..7f79b686 --- /dev/null +++ b/config/opal_check_ident.m4 @@ -0,0 +1,101 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2014 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl +dnl defines: +dnl OPAL_$1_USE_PRAGMA_IDENT +dnl OPAL_$1_USE_IDENT +dnl OPAL_$1_USE_CONST_CHAR_IDENT +dnl + +# OPAL_CHECK_IDENT(compiler-env, compiler-flags, +# file-suffix, lang) Try to compile a source file containing +# a #pragma ident, and determine whether the ident was +# inserted into the resulting object file +# ----------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_IDENT], [ + AC_MSG_CHECKING([for $4 ident string support]) + + opal_pragma_ident_happy=0 + opal_ident_happy=0 + opal_static_const_char_happy=0 + _OPAL_CHECK_IDENT( + [$1], [$2], [$3], + [[#]pragma ident], [], + [opal_pragma_ident_happy=1 + opal_message="[#]pragma ident"], + _OPAL_CHECK_IDENT( + [$1], [$2], [$3], + [[#]ident], [], + [opal_ident_happy=1 + opal_message="[#]ident"], + _OPAL_CHECK_IDENT( + [$1], [$2], [$3], + [[#]pragma comment(exestr, ], [)], + [opal_pragma_comment_happy=1 + opal_message="[#]pragma comment"], + [opal_static_const_char_happy=1 + opal_message="static const char[[]]"]))) + + AC_DEFINE_UNQUOTED([OPAL_$1_USE_PRAGMA_IDENT], + [$opal_pragma_ident_happy], [Use #pragma ident strings for $4 files]) + AC_DEFINE_UNQUOTED([OPAL_$1_USE_IDENT], + [$opal_ident_happy], [Use #ident strings for $4 files]) + AC_DEFINE_UNQUOTED([OPAL_$1_USE_PRAGMA_COMMENT], + [$opal_pragma_comment_happy], [Use #pragma comment for $4 files]) + AC_DEFINE_UNQUOTED([OPAL_$1_USE_CONST_CHAR_IDENT], + [$opal_static_const_char_happy], [Use static const char[] strings for $4 files]) + + AC_MSG_RESULT([$opal_message]) + + unset opal_pragma_ident_happy opal_ident_happy opal_static_const_char_happy opal_message +]) + +# _OPAL_CHECK_IDENT(compiler-env, compiler-flags, +# file-suffix, header_prefix, header_suffix, action-if-success, action-if-fail) +# Try to compile a source file containing a #-style ident, +# and determine whether the ident was inserted into the +# resulting object file +# ----------------------------------------------------------- +AC_DEFUN([_OPAL_CHECK_IDENT], [ + eval opal_compiler="\$$1" + eval opal_flags="\$$2" + + opal_ident="string_not_coincidentally_inserted_by_the_compiler" + cat > conftest.$3 <&1 1>/dev/null + opal_status=$? + AS_IF([test "$opal_output" != "" || test "$opal_status" = "0"], + [$6], + [$7])], + [OPAL_LOG_MSG([the failed program was:]) + OPAL_LOG_FILE([conftest.$3]) + $7] + [$7])]) + + unset opal_compiler opal_flags opal_output opal_status + rm -rf conftest.* conftest${EXEEXT} +])dnl diff --git a/config/opal_check_knem.m4 b/config/opal_check_knem.m4 new file mode 100644 index 00000000..2e999f1f --- /dev/null +++ b/config/opal_check_knem.m4 @@ -0,0 +1,74 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2009 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2010-2012 IBM Corporation. All rights reserved. +dnl Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_CHECK_KNEM(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if knem support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OPAL_CHECK_KNEM],[ + if test -z "$opal_check_knem_happy" ; then + OPAL_VAR_SCOPE_PUSH([opal_check_knem_$1_save_CPPFLAGS opal_check_knem_dir]) + AC_ARG_WITH([knem], + [AC_HELP_STRING([--with-knem(=DIR)], + [Build knem Linux kernel module support, searching for headers in DIR/include])]) + + OPAL_CHECK_WITHDIR([knem], [$with_knem], [include/knem_io.h]) + opal_check_knem_$1_save_CPPFLAGS="$CPPFLAGS" + + opal_check_knem_happy=no + + AS_IF([test "$with_knem" != "no"], + [AS_IF([test ! -z "$with_knem" && test "$with_knem" != "yes"], + [opal_check_knem_dir="$with_knem"]) + + _OPAL_CHECK_PACKAGE_HEADER([ompi_check_knem], + [knem_io.h], + [$opal_check_knem_dir], + [opal_check_knem_happy="yes"], + [])], + []) + + CPPFLAGS="$CPPFLAGS $ompi_check_knem_CPPFLAGS" + + # need at least version 0x0000000b + if test "$opal_check_knem_happy" = "yes" ; then + AC_PREPROC_IFELSE([AC_LANG_PROGRAM([ +#include + ],[ +#if KNEM_ABI_VERSION < 0xc +#error "Version less than 0xc" +#endif + ])], + [opal_check_knem_happy=yes], + [opal_check_knem_happy=no]) + fi + + CPPFLAGS="$opal_check_knem_$1_save_CPPFLAGS" + + OPAL_SUMMARY_ADD([[Transports]],[[Shared memory/Linux KNEM]],[$1],[$opal_check_knem_happy]) + OPAL_VAR_SCOPE_POP + fi + + AS_IF([test "$opal_check_knem_happy" = "yes"], + [$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_knem_CPPFLAGS" + $2], + [AS_IF([test ! -z "$with_knem" && test "$with_knem" != "no"], + [AC_MSG_ERROR([KNEM support requested but not found. Aborting])]) + $3]) +])dnl diff --git a/config/opal_check_libfabric.m4 b/config/opal_check_libfabric.m4 new file mode 100644 index 00000000..142c7c61 --- /dev/null +++ b/config/opal_check_libfabric.m4 @@ -0,0 +1,95 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2015-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +# OPAL_CHECK_LIBFABRIC(prefix, [action-if-found], [action-if-not-found] +# -------------------------------------------------------- +# Check if libfabric support can be found. +# +# Sets prefix_{CPPFLAGS, LDFLAGs, LIBS} as needed and runs +# action-if-found if there is support; otherwise executes +# action-if-not-found. +# +AC_DEFUN([OPAL_CHECK_LIBFABRIC],[ + if test -z "$opal_check_libfabric_happy" ; then + OPAL_VAR_SCOPE_PUSH([opal_check_libfabric_$1_save_CPPFLAGS opal_check_libfabric_$1_save_LDFLAGS opal_check_libfabric_$1_save_LIBS]) + + # Add --with options + AC_ARG_WITH([libfabric], + [AC_HELP_STRING([--with-libfabric=DIR], + [Specify location of libfabric installation, adding DIR/include to the default search location for libfabric headers, and DIR/lib or DIR/lib64 to the default search location for libfabric libraries. Error if libfabric support cannot be found.])]) + AC_ARG_WITH([libfabric-libdir], + [AC_HELP_STRING([--with-libfabric-libdir=DIR], + [Search for libfabric libraries in DIR])]) + + # Sanity check the --with values + OPAL_CHECK_WITHDIR([libfabric], [$with_libfabric], + [include/rdma/fabric.h]) + OPAL_CHECK_WITHDIR([libfabric-libdir], [$with_libfabric_libdir], + [libfabric.*]) + + opal_check_libfabric_$1_save_CPPFLAGS=$CPPFLAGS + opal_check_libfabric_$1_save_LDFLAGS=$LDFLAGS + opal_check_libfabric_$1_save_LIBS=$LIBS + + opal_check_libfabric_happy=yes + AS_IF([test "$with_libfabric" = "no"], + [opal_check_libfabric_happy=no]) + + AS_IF([test $opal_check_libfabric_happy = yes], + [AC_MSG_CHECKING([looking for libfabric in]) + AS_IF([test "$with_libfabric" != "yes"], + [opal_libfabric_dir=$with_libfabric + AC_MSG_RESULT([($opal_libfabric_dir)])], + [AC_MSG_RESULT([(default search paths)])]) + AS_IF([test ! -z "$with_libfabric_libdir" && \ + test "$with_libfabric_libdir" != "yes"], + [opal_libfabric_libdir=$with_libfabric_libdir]) + ]) + + AS_IF([test $opal_check_libfabric_happy = yes], + [OPAL_CHECK_PACKAGE([opal_check_libfabric], + [rdma/fabric.h], + [fabric], + [fi_getinfo], + [], + [$opal_libfabric_dir], + [$opal_libfabric_libdir], + [], + [opal_check_libfabric_happy=no])]) + + CPPFLAGS=$opal_check_libfabric_$1_save_CPPFLAGS + LDFLAGS=$opal_check_libfabric_$1_save_LDFLAGS + LIBS=$opal_check_libfabric_$1_save_LIBS + + OPAL_SUMMARY_ADD([[Transports]],[[OpenFabrics Libfabric]],[$1],[$opal_check_libfabric_happy]) + + OPAL_VAR_SCOPE_POP + fi + + if test $opal_check_libfabric_happy = yes ; then + $1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_libfabric_CPPFLAGS" + $1_LIBS="[$]$1_LIBS $opal_check_libfabric_LIBS" + $1_LDFLAGS="[$]$1_LDFLAGS $opal_check_libfabric_LDFLAGS" + + AC_SUBST($1_CPPFLAGS) + AC_SUBST($1_LDFLAGS) + AC_SUBST($1_LIBS) + fi + + AS_IF([test $opal_check_libfabric_happy = yes], + [$2], + [AS_IF([test -n "$with_libfabric" && test "$with_libfabric" != "no"], + [AC_MSG_WARN([libfabric support requested (via --with-libfabric), but not found.]) + AC_MSG_ERROR([Cannot continue.])]) + $3]) +])dnl diff --git a/config/opal_check_libnl.m4 b/config/opal_check_libnl.m4 new file mode 100644 index 00000000..075ce6ed --- /dev/null +++ b/config/opal_check_libnl.m4 @@ -0,0 +1,280 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2015-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +dnl +dnl More libnl v1/v3 sadness: the two versions are not compatible +dnl and will not work correctly if simultaneously linked into the +dnl same applications. Unfortunately, they *will* link into the +dnl same image! On platforms like CentOS 7, libibverbs depends on +dnl libnl-3.so.200 and friends, so if libnl3-devel packages are not +dnl installed, but libnl-devel are, Open MPI should not try to use libnl. +dnl +dnl GROSS: libnl wants us to either use pkg-config (which we +dnl can't assume is always present) or we need to look in a +dnl particular directory for the right libnl3 include files. For +dnl now, just hard code the special path into this logic. +dnl +dnl _OPAL_CHECK_PACKAGE_LIB() invokes OPAL_LIBNL_SANITY_CHECK() in order +dnl to keep track of which libraries depend on libnl and which libraries +dnl depend on libnl3. +dnl Open MPI will not be able to build a component vs a given version of libnl +dnl if the other libnl version is required by some third party components. +dnl At the end of configure, display a summary of who is using what, and aborts +dnl if both libnl versions are required. + +dnl OPAL_LIBNL_SANITY_INIT() +dnl -------------------------------------------------------------------- +AC_DEFUN([OPAL_LIBNL_SANITY_INIT], [ + opal_libnl_version=0 + opal_libnlv1_libs= + opal_libnlv3_libs= + AC_ARG_WITH([libnl], + [AC_HELP_STRING([--with-libnl(=DIR)], + [Directory prefix for libnl (typically only necessary if libnl is installed in a location that the compiler/linker will not search by default)])]) + + # The --with options carry two pieces of information: 1) do + # you want a specific version of libnl, and 2) where that + # version of libnl lives. For simplicity, let's separate + # those two pieces of information. + case "$with_libnl" in + no) + # Nope, don't want it + opal_want_libnl=no + ;; + "") + # Just try to build with libnl + opal_want_libnl=try + opal_libnl_location= + ;; + yes) + # Yes, definitely want it + opal_want_libnl=yes + opal_libnl_location= + ;; + *) + # Yes, definitely want it -- at a specific location + opal_want_libnl=yes + opal_libnl_location=$with_libnl + ;; + esac +]) + +dnl OPAL_LIBNL_SANITY_CHECK(lib, function, LIBS) +dnl -------------------------------------------------------------------- +AC_DEFUN([OPAL_LIBNL_SANITY_CHECK], [ + case $host in + *linux*) + OPAL_VAR_SCOPE_PUSH([ldd_output libnl_version]) + AC_LANG_PUSH(C) + cat > conftest_c.$ac_ext << EOF +extern void $2 (void); +int main(int argc, char *argv[[]]) { + $2 (); + return 0; +} +EOF + OPAL_LOG_COMMAND([$CC -o conftest $CFLAGS $CPPFLAGS conftest_c.$ac_ext $LDFLAGS -l$1 $LIBS $3], + [ldd_output=`ldd conftest` + libnl_version=0 + AS_IF([echo $ldd_output | grep -q libnl.so], + [AS_IF([test $opal_libnl_version -eq 3], + [AC_MSG_WARN([lib nl version conflict: $opal_libnlv3_libs requires libnl-3 whereas $1 requires libnl])], + [opal_libnlv1_libs="$opal_libnlv1_libs $1" + OPAL_UNIQ([opal_libnlv1_libs]) + opal_libnl_version=1]) + libnl_version=1]) + AS_IF([echo $ldd_output | grep -q libnl-3.so], + [AS_IF([test $libnl_version -eq 1], + [AC_MSG_WARN([lib $1 requires both libnl v1 and libnl v3 -- yoinks!]) + AC_MSG_WARN([This is a configuration that is known to cause run-time crashes]) + AC_MSG_ERROR([Cannot continue])]) + AS_IF([test $opal_libnl_version -eq 1], + [AC_MSG_WARN([lib nl version conflict: $opal_libnlv1_libs requires libnl whereas $1 requires libnl-3])], + [opal_libnlv3_libs="$opal_libnlv3_libs $1" + OPAL_UNIQ([opal_libnlv3_libs]) + opal_libnl_version=3])]) + rm -f conftest conftest_c.$ac_ext], + [AC_MSG_WARN([Could not link a simple program with lib $1])]) + AC_LANG_POP(C) + OPAL_VAR_SCOPE_POP([ldd_output libnl_version]) + ;; + esac +]) + +dnl +dnl Check for libnl-3. +dnl +dnl Inputs: +dnl +dnl $1: prefix where to look for libnl-3 +dnl $2: var name prefix of _CPPFLAGS and _LDFLAGS and _LIBS +dnl +dnl Outputs: +dnl +dnl - Set $2_CPPFLAGS necessary to compile with libnl-3 +dnl - Set $2_LDFLAGS necessary to link with libnl-3 +dnl - Set $2_LIBS necessary to link with libnl-3 +dnl - Set OPAL_HAVE_LIBNL3 1 if libnl-3 will be used +dnl +AC_DEFUN([OPAL_CHECK_LIBNL_V3],[ + OPAL_VAR_SCOPE_PUSH([CPPFLAGS_save opal_tmp_CPPFLAGS LIBS_save LDFLAGS_save]) + AC_MSG_NOTICE([checking for libnl v3]) + + AS_IF([test "$opal_want_libnl" != "no"], + [AS_IF([test -z "$opal_libnl_location"], + [AC_MSG_CHECKING([for /usr/include/libnl3]) + AS_IF([test -d "/usr/include/libnl3"], + [opal_tmp_CPPFLAGS=-I/usr/include/libnl3 + opal_libnlv3_happy=1 + AC_MSG_RESULT([found])], + [AC_MSG_RESULT([not found]) + AC_MSG_CHECKING([for /usr/local/include/libnl3]) + AS_IF([test -d "/usr/local/include/libnl3"], + [opal_tmp_CPPFLAGS=-I/usr/local/include/netlink3 + opal_libnlv3_happy=1 + AC_MSG_RESULT([found])], + [opal_libnlv3_happy=0 + AC_MSG_RESULT([not found])])])], + [AC_MSG_CHECKING([for $1/include/libnl3]) + AS_IF([test -d "$1/include/libnl3"], + [opal_tmp_CPPFLAGS="-I$1/include/libnl3" + opal_libnlv3_happy=1 + AC_MSG_RESULT([found])], + [opal_libnlv3_happy=0 + AC_MSG_RESULT([not found])])]) + CPPFLAGS_save=$CPPFLAGS + CPPFLAGS="$opal_tmp_CPPFLAGS $CPPFLAGS" + + # Random note: netlink/version.h is only in libnl v3 - it is not in libnl v1. + # Also, nl_recvmsgs_report is only in libnl v3. + AS_IF([test $opal_libnlv3_happy -eq 1], + [OPAL_CHECK_PACKAGE([$2], + [netlink/version.h], + [nl-3], + [nl_recvmsgs_report], + [], + [$1], + [], + [], + [opal_libnlv3_happy=0]) + + # Note that OPAL_CHECK_PACKAGE is going to add + # -I$dir/include into $2_CPPFLAGS. But because libnl v3 + # puts the headers in $dir/include/libnl3, we need to + # overwrite $2_CPPFLAGS with -I$dir/include/libnl3. We can do + # this unconditionally; we don't have to check for + # success (checking for success occurs below). + $2_CPPFLAGS=$opal_tmp_CPPFLAGS]) + + # If we found libnl-3, we *also* need libnl-route-3 + LIBS_save=$LIBS + LDFLAGS_save=$LDFLAGS + AS_IF([test -n "$$2_LDFLAGS"], + [LDFLAGS="$$2_LDFLAGS $LDFLAGS"]) + AS_IF([test $opal_libnlv3_happy -eq 1], + [AC_SEARCH_LIBS([nl_rtgen_request], + [nl-route-3], + [], + [opal_libnlv3_happy=0])]) + LIBS=$LIBS_save + LDFLAGS=$LDFLAGS_save + + # Just because libnl* is evil, double check that the + # netlink/version.h we found was for libnl v3. As far as we + # know, netlink/version.h only first appeared in version + # 3... but let's really be sure. + AS_IF([test $opal_libnlv3_happy -eq 1], + [AC_MSG_CHECKING([to ensure these really are libnl v3 headers]) + AS_IF([test -n "$$2_CPPFLAGS"], + [CPPFLAGS="$$2_CPPFLAGS $CPPFLAGS"]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#ifndef LIBNL_VER_MAJ +#error "LIBNL_VER_MAJ not defined!" +#endif +/* to the best of our knowledge, version.h only exists in libnl v3 */ +#if LIBNL_VER_MAJ != 3 +#error "LIBNL_VER_MAJ != 3, I am sad" +#endif + ]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + opal_libnlv3_happy=0])]) + + CPPFLAGS=$CPPFLAGS_save], + + [opal_libnlv3_happy=0]) + + # If we found everything + AS_IF([test $opal_libnlv3_happy -eq 1], + [$2_LIBS="-lnl-3 -lnl-route-3" + OPAL_HAVE_LIBNL3=1]) + + OPAL_VAR_SCOPE_POP +]) + +dnl +dnl Check for libnl. +dnl +dnl Inputs: +dnl +dnl $1: prefix where to look for libnl +dnl $2: var name prefix of _CPPFLAGS and _LDFLAGS and _LIBS +dnl +dnl Outputs: +dnl +dnl - Set $2_CPPFLAGS necessary to compile with libnl +dnl - Set $2_LDFLAGS necessary to link with libnl +dnl - Set $2_LIBS necessary to link with libnl +dnl - Set OPAL_HAVE_LIBNL3 0 if libnl will be used +dnl +AC_DEFUN([OPAL_CHECK_LIBNL_V1],[ + AC_MSG_NOTICE([checking for libnl v1]) + + AS_IF([test "$opal_want_libnl" != "no"], + [OPAL_CHECK_PACKAGE([$2], + [netlink/netlink.h], + [nl], + [nl_connect], + [-lm], + [$1], + [], + [opal_libnlv1_happy=1], + [opal_libnlv1_happy=0])], + [opal_libnlv1_happy=0]) + + AS_IF([test $opal_libnlv1_happy -eq 1], + [$2_LIBS="-lnl -lm" + OPAL_HAVE_LIBNL3=0]) +]) + +dnl +dnl Summarize libnl and libnl3 usage, +dnl and abort if conflict is found +dnl +dnl Print the list of libraries that use libnl, +dnl the list of libraries that use libnl3, +dnl and aborts if both libnl and libnl3 are used. +dnl +AC_DEFUN([OPAL_CHECK_LIBNL_SUMMARY],[ + AC_MSG_CHECKING([for libraries that use libnl v1]) + AS_IF([test -n "$opal_libnlv1_libs"], + [AC_MSG_RESULT([$opal_libnlv1_libs])], + [AC_MSG_RESULT([(none)])]) + AC_MSG_CHECKING([for libraries that use libnl v3]) + AS_IF([test -n "$opal_libnlv3_libs"], + [AC_MSG_RESULT([$opal_libnlv3_libs])], + [AC_MSG_RESULT([(none)])]) + AS_IF([test -n "$opal_libnlv1_libs" && test -n "$opal_libnlv3_libs"], + [AC_MSG_WARN([libnl v1 and libnl v3 have been found as dependent libraries]) + AC_ERROR([This is a configuration that is known to cause run-time crashes])]) +]) diff --git a/config/opal_check_offsetof.m4 b/config/opal_check_offsetof.m4 new file mode 100644 index 00000000..fc8c0cae --- /dev/null +++ b/config/opal_check_offsetof.m4 @@ -0,0 +1,43 @@ +# -*- shell-script -*- +# +# Copyright (c) 2009 IBM Corporation. All rights reserved. +# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This macro checks to ensure that the compiler properly supports +# offsetof(). The PGI compilers had a problem with this macro in some +# versions of their compiler on some platforms (e.g., 9.0-1 on +# x86_64). The workaround is to use -DNO_PGI_OFFSET in these cases. +# A bug report was submitted to PGI support in late June 2009; the +# problem was apparently a trivial typo in one of their header files +# and should be fixed in subsequent releases (e.g., 9.0-2?). + +AC_DEFUN([OPAL_CHECK_OFFSETOF],[ + OPAL_VAR_SCOPE_PUSH([have_offsetof_msg]) + + AC_MSG_CHECKING(for functional offsetof macro) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include]], + [[struct foo {int a, b;}; size_t offset = offsetof(struct foo, b); ]])], + [have_offsetof_msg="yes"], [have_offsetof_msg="no"]) + if test "$have_offsetof_msg" = "no"; then + CPPFLAGS="$CPPFLAGS -DNO_PGI_OFFSET" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include]], + [[struct foo {int a, b;}; size_t offset = offsetof(struct foo, b); ]])], + [have_offsetof_msg="yes"], [have_offsetof_msg="no"]) + + if test "$have_offsetof_msg" = "no"; then + AC_MSG_RESULT([$have_offsetof_msg]) + AC_MSG_WARN([Your compiler does not support offsetof macro]) + AC_MSG_ERROR([Configure: Cannot continue]) + fi + fi + + AC_MSG_RESULT([$have_offsetof_msg]) + OPAL_VAR_SCOPE_POP +])dnl + diff --git a/config/opal_check_openfabrics.m4 b/config/opal_check_openfabrics.m4 new file mode 100644 index 00000000..6f6e4be7 --- /dev/null +++ b/config/opal_check_openfabrics.m4 @@ -0,0 +1,484 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2006-2016 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved. +# Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009-2012 Oak Ridge National Laboratory. All rights reserved. +# Copyright (c) 2014 Bull SAS. All rights reserved. +# Copyright (c) 2014-2016 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OPAL_CHECK_OPENFABRICS(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if OPENIB support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OPAL_CHECK_OPENFABRICS],[ + OPAL_VAR_SCOPE_PUSH([$1_msg]) + + # Setup the --with switches to allow users to specify where + # verbs stuff lives. + AC_REQUIRE([OPAL_CHECK_VERBS_DIR]) + + if test -z "$opal_check_openib_happy" ; then + # + # Add padding to OpenIB header + # + AC_ARG_ENABLE([openib-control-hdr-padding], + [AC_HELP_STRING([--enable-openib-control-hdr-padding], + [Add padding bytes to the openib BTL control header (default:disabled)])]) + AC_MSG_CHECKING([if want to add padding to the openib BTL control header]) + if test "$enable_openib_control_hdr_padding" = "yes"; then + AC_MSG_RESULT([yes]) + ompi_openib_pad_hdr=1 + elif test "$enable_openib_control_hdr_padding" = "no"; then + AC_MSG_RESULT([no]) + ompi_openib_pad_hdr=0 + else + # + # Enable padding for SPARC platforms by default because the + # btl will segv otherwise. Keep padding disabled for other + # platforms since there are some performance implications with + # padding on for those plaforms. + # + case "${host}" in + sparc*) + AC_MSG_RESULT([yes (enabled by default on SPARC)]) + ompi_openib_pad_hdr=1 + ;; + *) + AC_MSG_RESULT([no]) + ompi_openib_pad_hdr=0 + ;; + esac + fi + AC_DEFINE_UNQUOTED([OPAL_OPENIB_PAD_HDR], [$ompi_openib_pad_hdr], + [Add padding bytes to the openib BTL control header]) + + AS_IF([test "$opal_want_verbs" = "no"], + [opal_check_openib_happy="no"], + [opal_check_openib_happy="yes"]) + + ompi_check_openib_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_openib_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_openib_$1_save_LIBS="$LIBS" + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [AC_CHECK_HEADERS( + fcntl.h sys/poll.h, + [], + [AC_MSG_WARN([fcntl.h sys/poll.h not found. Can not build component.]) + opal_check_openib_happy="no"])]) + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [OPAL_CHECK_PACKAGE([opal_check_openib], + [infiniband/verbs.h], + [ibverbs], + [ibv_open_device], + [], + [$opal_verbs_dir], + [$opal_verbs_libdir], + [opal_check_openib_happy="yes"], + [opal_check_openib_happy="no"])]) + + CPPFLAGS="$CPPFLAGS $opal_check_openib_CPPFLAGS" + LDFLAGS="$LDFLAGS $opal_check_openib_LDFLAGS" + LIBS="$LIBS $opal_check_openib_LIBS" + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [AC_CACHE_CHECK( + [number of arguments to ibv_create_cq], + [ompi_cv_func_ibv_create_cq_args], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[ibv_create_cq(NULL, 0, NULL, NULL, 0);]])], + [ompi_cv_func_ibv_create_cq_args=5], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[ibv_create_cq(NULL, 0, NULL);]])], + [ompi_cv_func_ibv_create_cq_args=3], + [ompi_cv_func_ibv_create_cq_args="unknown"])])]) + AS_IF([test "$ompi_cv_func_ibv_create_cq_args" = "unknown"], + [AC_MSG_WARN([Can not determine number of args to ibv_create_cq.]) + AC_MSG_WARN([Not building component.]) + opal_check_openib_happy="no"], + [AC_DEFINE_UNQUOTED([OPAL_IBV_CREATE_CQ_ARGS], + [$ompi_cv_func_ibv_create_cq_args], + [Number of arguments to ibv_create_cq])])]) + + # + # OpenIB dynamic SL + # + AC_ARG_ENABLE([openib-dynamic-sl], + [AC_HELP_STRING([--enable-openib-dynamic-sl], + [Enable openib BTL to query Subnet Manager for IB SL (default: enabled)])]) + + # Set these up so that we can do an AC_DEFINE below + # (unconditionally) + opal_check_openib_have_xrc=0 + opal_check_openib_have_xrc_domains=0 + opal_check_openib_have_opensm_devel=0 + + # If we have the openib stuff available, find out what we've got + AS_IF([test "$opal_check_openib_happy" = "yes"], + [AC_CHECK_DECLS([IBV_EVENT_CLIENT_REREGISTER, IBV_ACCESS_SO, IBV_ATOMIC_HCA], [], [], + [#include ]) + AC_CHECK_FUNCS([ibv_get_device_list ibv_resize_cq]) + + # struct ibv_device.transport_type was added in OFED v1.2 + AC_CHECK_MEMBERS([struct ibv_device.transport_type], [], [], + [#include ]) + + # We have to check functions both exits *and* are declared + # since some distro ship broken ibverbs devel headers + # IBV_DEVICE_XRC is common to all OFED versions + # ibv_create_xrc_rcv_qp was added in OFED 1.3 + # ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12 + if test "$enable_connectx_xrc" = "yes"; then + AC_CHECK_DECLS([IBV_DEVICE_XRC], + [opal_check_openib_have_xrc=1 + opal_check_openib_have_xrc_domains=1], + [], + [#include ]) + fi + if test "$enable_connectx_xrc" = "yes" \ + && test $opal_check_openib_have_xrc -eq 1; then + AC_CHECK_DECLS([ibv_create_xrc_rcv_qp], + [AC_CHECK_FUNCS([ibv_create_xrc_rcv_qp], + [], [opal_check_openib_have_xrc=0])], + [opal_check_openib_have_xrc=0], + [#include ]) + fi + if test "$enable_connectx_xrc" = "yes" \ + && test $opal_check_openib_have_xrc_domains -eq 1; then + AC_CHECK_DECLS([ibv_cmd_open_xrcd], + [AC_CHECK_DECLS([IBV_SRQT_XRC], + [AC_CHECK_FUNCS([ibv_cmd_open_xrcd], + [], [opal_check_openib_have_xrc_domains=0])], + [opal_check_openib_have_xrc_domains=0], + [#include ])], + [opal_check_openib_have_xrc_domains=0], + [#include ]) + # XRC and XRC Domains should be considered as exclusive + if test "$opal_check_openib_have_xrc" -eq 1 && \ + test "$opal_check_openib_have_xrc_domains" -eq 1; then + opal_check_openib_have_xrc=0 + fi + fi + + if test "no" != "$enable_openib_dynamic_sl"; then + # We need ib_types.h file, which is installed with opensm-devel + # package. However, ib_types.h has a bad include directive, + # which will cause AC_CHECK_HEADER to fail. + # So instead, we will look for another file that is also + # installed as part of opensm-devel package and included in + # ib_types.h, but it doesn't include any other IB-related files. + AC_CHECK_HEADER([infiniband/complib/cl_types_osd.h], + [AC_CHECK_LIB([osmcomp], [cl_map_init], + [opal_check_openib_have_opensm_devel=1],[])], + [], + []) + # Abort if dynamic SL support was explicitly requested but opensm-devel + # package wasn't found. Otherwise, OMPI will be built w/o dynamic SL. + AC_MSG_CHECKING([if can use dynamic SL support]) + AS_IF([test "$opal_check_openib_have_opensm_devel" = "1"], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AS_IF([test "$enable_openib_dynamic_sl" = "yes"], + [AC_MSG_WARN([--enable-openib-dynamic-sl was specified but the]) + AC_MSG_WARN([appropriate header/library files could not be found]) + AC_MSG_WARN([Please install opensm-devel if you need dynamic SL support]) + AC_MSG_ERROR([Cannot continue])])]) + fi + + + # Check support for RDMAoE devices + $1_have_rdmaoe=0 + AC_CHECK_DECLS([IBV_LINK_LAYER_ETHERNET], + [$1_have_rdmaoe=1], [], + [#include ]) + + AC_MSG_CHECKING([if RDMAoE support is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_RDMAOE], [$$1_have_rdmaoe], [Enable RDMAoE support]) + if test "1" = "$$1_have_rdmaoe"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + ]) + + # Check to see if works. It is known to + # create problems on some platforms with some compilers (e.g., + # RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC + # 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in + # AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test + # will fail if the header is present but not compilable, *but it + # will not print the big scary warning*. See + # http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html. + AS_IF([test "$opal_check_openib_happy" = "yes"], + [AC_CHECK_HEADERS([infiniband/driver.h], [], [], + [AC_INCLUDES_DEFAULT])]) + + AC_MSG_CHECKING([if ConnectX XRC support is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_CONNECTX_XRC], [$opal_check_openib_have_xrc], + [Enable features required for ConnectX XRC support]) + if test "1" = "$opal_check_openib_have_xrc"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([if ConnectIB XRC support is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_CONNECTX_XRC_DOMAINS], [$opal_check_openib_have_xrc_domains], + [Enable features required for XRC domains support]) + if test "1" = "$opal_check_openib_have_xrc_domains"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([if dynamic SL is enabled]) + AC_DEFINE_UNQUOTED([OPAL_ENABLE_DYNAMIC_SL], [$opal_check_openib_have_opensm_devel], + [Enable features required for dynamic SL support]) + if test "1" = "$opal_check_openib_have_opensm_devel"; then + AC_MSG_RESULT([yes]) + $1_LIBS="-losmcomp $$1_LIBS" + else + AC_MSG_RESULT([no]) + fi + + AS_IF([test -z "$opal_verbs_dir"], + [openib_include_dir="/usr/include"], + [openib_include_dir="$opal_verbs_dir/include"]) + opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband" + + CPPFLAGS="$ompi_check_openib_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_openib_$1_save_LDFLAGS" + LIBS="$ompi_check_openib_$1_save_LIBS" + + OPAL_SUMMARY_ADD([[Transports]],[[OpenFabrics Verbs]],[$1],[$opal_check_openib_happy]) + + OPAL_VAR_SCOPE_POP + fi + + $1_have_xrc=$opal_check_openib_have_xrc + $1_have_xrc_domains=$opal_check_openib_have_xrc_domains + $1_have_opensm_devel=$opal_check_openib_have_opensm_devel + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [$1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_openib_CPPFLAGS" + $1_LDFLAGS="[$]$1_LDFLAGS $opal_check_openib_LDFLAGS" + $1_LIBS="[$]$1_LIBS $opal_check_openib_LIBS" + $2], + [AS_IF([test "$opal_want_verbs" = "yes"], + [AC_MSG_WARN([Verbs support requested (via --with-verbs) but not found.]) + AC_MSG_WARN([If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs.]) + AC_MSG_ERROR([Aborting.])]) + $3]) + +]) + +AC_DEFUN([OPAL_CHECK_OPENFABRICS_CM_ARGS],[ + # + # ConnectX XRC support + # + AC_ARG_ENABLE([openib-connectx-xrc], + [AC_HELP_STRING([--enable-openib-connectx-xrc], + [Enable ConnectX XRC support in the openib BTL. If you do not have InfiniBand ConnectX adapters, you may disable the ConnectX XRC support. If you do not know which InfiniBand adapter is installed on your cluster, leave this option enabled (default: enabled)])], + [enable_connectx_xrc="$enableval"], [enable_connectx_xrc="yes"]) + # + # Unconnect Datagram (UD) based connection manager + # + AC_ARG_ENABLE([openib-udcm], + [AC_HELP_STRING([--enable-openib-udcm], + [Enable datagram connection support in openib BTL (default: enabled)])], + [enable_openib_udcm="$enableval"], [enable_openib_udcm="yes"]) + # Per discussion with Ralph and Nathan, disable UDCM for now. + # It's borked and needs some surgery to get back on its feet. + # enable_openib_udcm=no + + # + # Openfabrics RDMACM + # + AC_ARG_ENABLE([openib-rdmacm], + [AC_HELP_STRING([--enable-openib-rdmacm], + [Enable Open Fabrics RDMACM support in openib BTL (default: enabled)])]) + AC_ARG_ENABLE([openib-rdmacm-ibaddr], + [AC_HELP_STRING([--enable-openib-rdmacm-ibaddr], + [Enable Open Fabrics RDMACM with IB addressing support in openib BTL (default: disabled)])], + [enable_openib_rdmacm=yes]) +])dnl + +AC_DEFUN([OPAL_CHECK_OPENFABRICS_CM],[ + AC_REQUIRE([OPAL_CHECK_OPENFABRICS_CM_ARGS]) + $1_have_udcm=0 + $1_have_rdmacm=0 + + ompi_check_openib_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_openib_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_openib_$1_save_LIBS="$LIBS" + + # add back in all the InfiniBand flags so that these tests might work... + CPPFLAGS="$CPPFLAGS $$1_CPPFLAGS" + LDFLAGS="$LDFLAGS $$1_LDFLAGS" + LIBS="$LIBS $$1_LIBS" + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [# Do we have a recent enough RDMA CM? Need to have the + # rdma_get_peer_addr (inline) function (originally appeared + # in OFED v1.3). + if test "$enable_openib_rdmacm" != "no"; then + AC_CHECK_HEADERS([rdma/rdma_cma.h], + [AC_CHECK_LIB([rdmacm], [rdma_create_id], + [AC_MSG_CHECKING([for rdma_get_peer_addr]) + $1_msg=no + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "rdma/rdma_cma.h" + ]], [[void *ret = (void*) rdma_get_peer_addr((struct rdma_cm_id*)0);]])], + [$1_have_rdmacm=1 + $1_msg=yes]) + AC_MSG_RESULT([$$1_msg])])]) + + if test "1" = "$$1_have_rdmacm"; then + $1_LIBS="-lrdmacm $$1_LIBS" + else + AS_IF([test "$enable_openib_rdmacm" = "yes"], + [AC_MSG_WARN([--enable-openib-rdmacm was specified but the]) + AC_MSG_WARN([appropriate files could not be found]) + AC_MSG_WARN([Please install librdmacm and librdmacm-devel or disable rdmacm support]) + AC_MSG_ERROR([Cannot continue])]) + fi + fi + + # is udcm enabled + if test "$enable_openib_udcm" = "yes"; then + $1_have_udcm=1 + fi + ]) + + CPPFLAGS="$ompi_check_openib_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_openib_$1_save_LDFLAGS" + LIBS="$ompi_check_openib_$1_save_LIBS" + + AC_MSG_CHECKING([if UD CM is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_UDCM], [$$1_have_udcm], + [Whether UD CM is available or not]) + if test "1" = "$$1_have_udcm"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([if OpenFabrics RDMACM support is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_RDMACM], [$$1_have_rdmacm], + [Whether RDMA CM is available or not]) + if test "1" = "$$1_have_rdmacm"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +])dnl + +AC_DEFUN([OPAL_CHECK_EXP_VERBS],[ + OPAL_VAR_SCOPE_PUSH([have_struct_ibv_exp_send_wr]) + + AC_MSG_CHECKING([whether expanded verbs are available]) + AC_TRY_COMPILE([#include ], [struct ibv_exp_send_wr;], + [have_struct_ibv_exp_send_wr=1 + AC_MSG_RESULT([yes])], + [have_struct_ibv_exp_send_wr=0 + AC_MSG_RESULT([no])]) + + AC_DEFINE_UNQUOTED([HAVE_EXP_VERBS], [$have_struct_ibv_exp_send_wr], [Experimental verbs]) + AC_CHECK_DECLS([IBV_EXP_ATOMIC_HCA_REPLY_BE, IBV_EXP_QP_CREATE_ATOMIC_BE_REPLY, ibv_exp_create_qp, ibv_exp_query_device, IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG], + [], [], [#include ]) + AC_CHECK_MEMBERS([struct ibv_exp_device_attr.ext_atom, struct ibv_exp_device_attr.exp_atomic_cap], [], [], + [[#include ]]) + AS_IF([test '$have_struct_ibv_exp_send_wr' = 1], [$1], [$2]) + OPAL_VAR_SCOPE_POP +])dnl + +AC_DEFUN([OPAL_CHECK_MLNX_OPENFABRICS],[ + $1_have_mverbs=0 + $1_have_mqe=0 + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [OPAL_CHECK_PACKAGE([$1], + [infiniband/mverbs.h], + [mverbs], + [ibv_m_query_device], + ["$$1_LIBS"], + [$opal_verbs_dir], + [$opal_verbs_libdir], + [$1_have_mverbs=1], + [])]) + + AS_IF([test "$opal_check_openib_happy" = "yes"], + [OPAL_CHECK_PACKAGE([$1], + [infiniband/mqe.h], + [mqe], + [mqe_context_create], + ["$$1_LIBS"], + [$opal_verbs_dir], + [$opal_verbs_libdir], + [$1_have_mqe=1], + [])]) + + AC_MSG_CHECKING([if Mellanox OpenFabrics VERBS is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_MVERBS], [$$1_have_mverbs], + [Whether MVERBS is available or not]) + AS_IF([test "1" = "$$1_have_mverbs"], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + + # save the CPPFLAGS since we would have to update it for next test + ompi_check_mellanox_openfabrics_$1_save_CPPFLAGS="$CPPFLAGS" + + # If openfabrics custom directory have been defined, we have + # to use it for MACRO test that uses mverbs.h file. + # + if test ! -z "$ompi_check_verbs_dir" ; then + CPPFLAGS="-I${opal_verbs_dir}/include $CPPFLAGS" + fi + + AS_IF([test "1" = "$$1_have_mverbs"], + [AC_CHECK_DECLS([IBV_M_WR_CALC_RDMA_WRITE_WITH_IMM], + [AC_DEFINE_UNQUOTED([OPAL_HAVE_IBOFFLOAD_CALC_RDMA], [1], + [Whether IBV_M_WR_CALC_SEND is defined or not])], + [AC_DEFINE_UNQUOTED([OPAL_HAVE_IBOFFLOAD_CALC_RDMA], [0], + [Whether IBV_M_WR_CALC_SEND is defined or not])], + [#include ])]) + + # restoring the CPPFLAGS + CPPFLAGS="$ompi_check_mellanox_openfabrics_$1_save_CPPFLAGS" + + AC_MSG_CHECKING([if Mellanox OpenFabrics MQE is enabled]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_MQE], [$$1_have_mqe], + [Whether MQE is available or not]) + AS_IF([test "1" = "$$1_have_mqe"], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + + AS_IF([test "1" = "$$1_have_mverbs" && test "1" = $$1_have_mqe], + [$2], [$3]) +])dnl diff --git a/config/opal_check_os_flavors.m4 b/config/opal_check_os_flavors.m4 new file mode 100644 index 00000000..e8eaba11 --- /dev/null +++ b/config/opal_check_os_flavors.m4 @@ -0,0 +1,69 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl Copyright (c) 2014 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_CHECK_OS_FLAVOR_SPECIFIC() +# ---------------------------------------------------- +# Helper macro from OPAL-CHECK-OS-FLAVORS(), below. +# $1 = macro to look for +# $2 = suffix of env variable to set with results +AC_DEFUN([OPAL_CHECK_OS_FLAVOR_SPECIFIC], +[ + AC_MSG_CHECKING([$1]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[#ifndef $1 + error: this isnt $1 + #endif + ]])], + [opal_found_$2=yes], + [opal_found_$2=no]) + AC_MSG_RESULT([$opal_found_$2]) +])dnl + +# OPAL_CHECK_OS_FLAVORS() +# ---------------------------------------------------- +# Try to figure out the various OS flavors out there. +# +AC_DEFUN([OPAL_CHECK_OS_FLAVORS], +[ + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__NetBSD__], [netbsd]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__FreeBSD__], [freebsd]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__OpenBSD__], [openbsd]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__DragonFly__], [dragonfly]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__386BSD__], [386bsd]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__bsdi__], [bsdi]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__APPLE__], [apple]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__linux__], [linux]) + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__sun__], [sun]) + AS_IF([test "$opal_found_sun" = "no"], + OPAL_CHECK_OS_FLAVOR_SPECIFIC([__sun], [sun])) + + AS_IF([test "$opal_found_sun" = "yes"], + [opal_have_solaris=1 + CFLAGS="$CFLAGS -D_REENTRANT" + CPPFLAGS="$CPPFLAGS -D_REENTRANT"], + [opal_have_solaris=0]) + AC_DEFINE_UNQUOTED([OPAL_HAVE_SOLARIS], + [$opal_have_solaris], + [Whether or not we have solaris]) + + # check for sockaddr_in (a good sign we have TCP) + AC_CHECK_HEADERS([netdb.h netinet/in.h netinet/tcp.h]) + AC_CHECK_TYPES([struct sockaddr_in], + [opal_found_sockaddr=yes], + [opal_found_sockaddr=no], + [AC_INCLUDES_DEFAULT +#ifdef HAVE_NETINET_IN_H +#include +#endif]) +])dnl diff --git a/config/opal_check_package.m4 b/config/opal_check_package.m4 new file mode 100644 index 00000000..5caec7c0 --- /dev/null +++ b/config/opal_check_package.m4 @@ -0,0 +1,223 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2012-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl Copyright (c) 2015-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +dnl _OPAL_CHECK_PACKAGE_HEADER(prefix, header, dir-prefix, +dnl [action-if-found], [action-if-not-found], +dnl includes) +dnl -------------------------------------------------------------------- +AC_DEFUN([_OPAL_CHECK_PACKAGE_HEADER], [ + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + AS_VAR_PUSHDEF([opal_Header], [ac_cv_header_$2]) + OPAL_VAR_SCOPE_PUSH([dir_prefix]) + + # so this sucks, but there's no way to get through the progression + # of header includes without killing off the cache variable and trying + # again... + unset opal_Header + + # get rid of the trailing slash(es) + dir_prefix=$(echo $3 | sed -e 'sX/*$XXg') + opal_check_package_header_happy="no" + AS_IF([test "$dir_prefix" = "/usr" || \ + test "$dir_prefix" = "/usr/local"], + [ # try as is... + AC_VERBOSE([looking for header without includes]) + AC_CHECK_HEADERS([$2], [opal_check_package_header_happy="yes"], []) + AS_IF([test "$opal_check_package_header_happy" = "no"], + [# no go on the as is - reset the cache and try again + unset opal_Header])]) + + AS_IF([test "$opal_check_package_header_happy" = "no"], + [AS_IF([test "$dir_prefix" != ""], + [$1_CPPFLAGS="$$1_CPPFLAGS -I$dir_prefix/include" + CPPFLAGS="$CPPFLAGS -I$dir_prefix/include"]) + AC_CHECK_HEADERS([$2], [opal_check_package_header_happy="yes"], [], [$6]) + AS_IF([test "$opal_check_package_header_happy" = "yes"], [$4], [$5])], + [$4]) + unset opal_check_package_header_happy + + OPAL_VAR_SCOPE_POP([dir_prefix]) + AS_VAR_POPDEF([opal_Header])dnl +]) + + +dnl _OPAL_CHECK_PACKAGE_LIB(prefix, library, function, extra-libraries, +dnl dir-prefix, libdir, +dnl [action-if-found], [action-if-not-found]]) +dnl -------------------------------------------------------------------- +AC_DEFUN([_OPAL_CHECK_PACKAGE_LIB], [ + # This is stolen from autoconf to peek under the covers to get the + # cache variable for the library check. one should not copy this + # code into other places unless you want much pain and suffering + AS_VAR_PUSHDEF([opal_Lib], [ac_cv_search_$3]) + + # see comment above + unset opal_Lib + opal_check_package_lib_happy="no" + AS_IF([test "$6" != ""], + [ # libdir was specified - search only there + $1_LDFLAGS="$$1_LDFLAGS -L$6" + LDFLAGS="$LDFLAGS -L$6" + AC_SEARCH_LIBS([$3], [$2], + [opal_check_package_lib_happy="yes"], + [opal_check_package_lib_happy="no"], [$4]) + AS_IF([test "$opal_check_package_lib_happy" = "no"], + [LDFLAGS="$opal_check_package_$1_save_LDFLAGS" + $1_LDFLAGS="$opal_check_package_$1_orig_LDFLAGS" + unset opal_Lib])], + [ # libdir was not specified - go through search path + opal_check_package_libdir="$5" + AS_IF([test "$opal_check_package_libdir" = "" || \ + test "$opal_check_package_libdir" = "/usr" || \ + test "$opal_check_package_libdir" = "/usr/local"], + [ # try as is... + AC_VERBOSE([looking for library without search path]) + AC_SEARCH_LIBS([$3], [$2], + [opal_check_package_lib_happy="yes"], + [opal_check_package_lib_happy="no"], [$4]) + AS_IF([test "$opal_check_package_lib_happy" = "no"], + [ # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_$1_save_LDFLAGS" + $1_LDFLAGS="$opal_check_package_$1_orig_LDFLAGS" + unset opal_Lib])]) + + AS_IF([test "$opal_check_package_lib_happy" = "no"], + [AS_IF([test "$opal_check_package_libdir" != ""], + [$1_LDFLAGS="$$1_LDFLAGS -L$opal_check_package_libdir/lib" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib" + AC_VERBOSE([looking for library in lib]) + AC_SEARCH_LIBS([$3], [$2], + [opal_check_package_lib_happy="yes"], + [opal_check_package_lib_happy="no"], [$4]) + AS_IF([test "$opal_check_package_lib_happy" = "no"], + [ # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_$1_save_LDFLAGS" + $1_LDFLAGS="$opal_check_package_$1_orig_LDFLAGS" + unset opal_Lib])])]) + + AS_IF([test "$opal_check_package_lib_happy" = "no"], + [AS_IF([test "$opal_check_package_libdir" != ""], + [$1_LDFLAGS="$$1_LDFLAGS -L$opal_check_package_libdir/lib64" + LDFLAGS="$LDFLAGS -L$opal_check_package_libdir/lib64" + AC_VERBOSE([looking for library in lib64]) + AC_SEARCH_LIBS([$3], [$2], + [opal_check_package_lib_happy="yes"], + [opal_check_package_lib_happy="no"], [$4]) + AS_IF([test "$opal_check_package_lib_happy" = "no"], + [ # no go on the as is.. see what happens later... + LDFLAGS="$opal_check_package_$1_save_LDFLAGS" + $1_LDFLAGS="$opal_check_package_$1_orig_LDFLAGS" + unset opal_Lib])])])]) + + AS_IF([test "$opal_check_package_lib_happy" = "yes"], + [ # The result of AC SEARCH_LIBS is cached in $ac_cv_search_[function] + AS_IF([test "$ac_cv_search_$3" != "no" && + test "$ac_cv_search_$3" != "none required"], + [$1_LIBS="$ac_cv_search_$3 $4"], + [$1_LIBS="$4"]) + # libnl v1 and libnl3 are known *not* to coexist + # for each library, figure out whether it depends on libnl or libnl3 or none + # so conflicts can be reported and/or prevented + OPAL_LIBNL_SANITY_CHECK([$2], [$3], [$$1_LIBS]) + $7], + [$8]) + + AS_VAR_POPDEF([opal_Lib])dnl +]) + + +dnl OPAL_CHECK_PACKAGE(prefix, +dnl header, +dnl library, +dnl function, +dnl extra-libraries, +dnl dir-prefix, +dnl libdir-prefix, +dnl [action-if-found], [action-if-not-found], +dnl includes) +dnl ----------------------------------------------------------- +dnl Check for package defined by header and libs, and probably +dnl located in dir-prefix, possibly with libs in libdir-prefix. +dnl Both dir-prefix and libdir-prefix can be empty. Will set +dnl prefix_{CPPFLAGS, LDFLAGS, LIBS} as needed. +dnl +dnl The general intent of this macro is to provide finer-grained scoping +dnl of C preprocessor flags, linker flags, and libraries (as opposed to +dnl unconditionally adding to the top-level CPFLAGS, LDFLAGS, and LIBS, +dnl which get used to compile/link *everything*). +dnl +dnl Here is a breakdown of the parameters: +dnl +dnl * prefix: the macro sets $prefix_CPPFLAGS, $prefix_LDFLAGS, and +dnl $prefix_LIBS (and AC_SUBSTs all of them). For example, if a +dnl provider uses this macro to check for a header/library that it +dnl needs, it might well set prefix to be its provider name. +dnl * header_filename: the foo.h file to check for +dnl * library_name / function_name: check for function function_name in +dnl -llibrary_name. Specifically, for library_name, use the "foo" form, +dnl as opposed to "libfoo". +dnl * extra_libraries: if the library_name you are checking for requires +dnl additonal -l arguments to link successfully, list them here. +dnl * dir_prefix: if the header/library is located in a non-standard +dnl location (e.g., /opt/foo as opposed to /usr), list it here +dnl * libdir_prefix: if the library is not under $dir_prefix/lib or +dnl $dir_prefix/lib64, list it here. +dnl * action_if_found: if both the header and library are found and +dnl usable, execute action_if_found +dnl * action_if_not_found: otherwise, execute action_if_not_found +dnl * extra_includes: if including header_filename requires additional +dnl headers to be included first, list them here +dnl +dnl The output _CPPFLAGS, _LDFLAGS, and _LIBS can be used to limit the +dnl scope various flags in Makefiles. +dnl +AC_DEFUN([OPAL_CHECK_PACKAGE],[ + opal_check_package_$1_save_CPPFLAGS="$CPPFLAGS" + opal_check_package_$1_save_LDFLAGS="$LDFLAGS" + opal_check_package_$1_save_LIBS="$LIBS" + + opal_check_package_$1_orig_CPPFLAGS="$$1_CPPFLAGS" + opal_check_package_$1_orig_LDFLAGS="$$1_LDFLAGS" + opal_check_package_$1_orig_LIBS="$$1_LIBS" + + _OPAL_CHECK_PACKAGE_HEADER([$1], [$2], [$6], + [_OPAL_CHECK_PACKAGE_LIB([$1], [$3], [$4], [$5], [$6], [$7], + [opal_check_package_happy="yes"], + [opal_check_package_happy="no"])], + [opal_check_package_happy="no"], + [$10]) + + AS_IF([test "$opal_check_package_happy" = "yes"], + [$8], + [$1_CPPFLAGS="$opal_check_package_$1_orig_CPPFLAGS" + $1_LDFLAGS="$opal_check_package_$1_orig_LDFLAGS" + $1_LIBS="$opal_check_package_$1_orig_LIBS" + $9]) + + CPPFLAGS="$opal_check_package_$1_save_CPPFLAGS" + LDFLAGS="$opal_check_package_$1_save_LDFLAGS" + LIBS="$opal_check_package_$1_save_LIBS" +]) diff --git a/config/opal_check_pmi.m4 b/config/opal_check_pmi.m4 new file mode 100644 index 00000000..b24de633 --- /dev/null +++ b/config/opal_check_pmi.m4 @@ -0,0 +1,330 @@ +# -*- shell-script ; indent-tabs-mode:nil -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2014-2016 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2016 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# Copyright (c) 2016 IBM Corporation. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# define an internal function for checking the existence +# and validity of a PMI library +# +# OPAL_CHECK_PMI_LIB(installdir, libdir, pmi, function, [action-if-slurm], [action-if-valid], [action-if-not-valid]) +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_PMI_LIB], +[ + # save flags + opal_check_$3_save_CPPFLAGS=$CPPFLAGS + opal_check_$3_save_LDFLAGS=$LDFLAGS + opal_check_$3_save_LIBS=$LIBS + opal_check_$3_hdr_happy= + opal_check_$3_mycppflags= + + # check for the header + AC_MSG_CHECKING([for $3.h in $1/include]) + AS_IF([test -f $1/include/$3.h], + [AC_MSG_RESULT([found]) + opal_check_$3_mycppflags="-I$1/include"], + [AC_MSG_RESULT([not found]) + AC_MSG_CHECKING([for $3.h in $1/include/slurm]) + AS_IF([test -f $1/include/slurm/$3.h], + [AC_MSG_RESULT([found]) + opal_check_$3_mycppflags="-I$1/include/slurm" + $5], + [AC_MSG_RESULT([not found]) + opal_check_$3_hdr_happy=no])]) + + AS_IF([test "$opal_check_$3_hdr_happy" != "no"], + [CPPFLAGS="$CPPFLAGS $opal_check_$3_mycppflags" + AC_CHECK_HEADER([$3.h], + [opal_check_$3_hdr_happy=yes + $3_CPPFLAGS="$opal_check_$3_mycppflags"], + [opal_check_$3_hdr_happy=no])]) + + # check for library and function + opal_check_$3_lib_happy= + LIBS="$LIBS -l$3" + + # check for the library in the given location in case + # an exact path was given + AC_MSG_CHECKING([for lib$3 in $2]) + files=`ls $2/lib$3.* 2> /dev/null | wc -l` + AS_IF([test "$files" -gt "0"], + [AC_MSG_RESULT([found]) + LDFLAGS="$LDFLAGS -L$2" + AC_CHECK_LIB([$3], [$4], + [opal_check_$3_lib_happy=yes + $3_LDFLAGS=-L$2 + $3_rpath=$2], + [opal_check_$3_lib_happy=no])], + [opal_check_$3_lib_happy=no + AC_MSG_RESULT([not found])]) + + # check for presence of lib64 directory - if found, see if the + # desired library is present and matches our build requirements + files=`ls $2/lib64/lib$3.* 2> /dev/null | wc -l` + AS_IF([test "$opal_check_$3_lib_happy" != "yes"], + [AC_MSG_CHECKING([for lib$3 in $2/lib64]) + AS_IF([test "$files" -gt "0"], + [AC_MSG_RESULT([found]) + LDFLAGS="$LDFLAGS -L$2/lib64" + AC_CHECK_LIB([$3], [$4], + [opal_check_$3_lib_happy=yes + $3_LDFLAGS=-L$2/lib64 + $3_rpath=$2/lib64], + [opal_check_$3_lib_happy=no])], + [opal_check_$3_lib_happy=no + AC_MSG_RESULT([not found])])]) + + + # if we didn't find lib64, or the library wasn't present or correct, + # then try a lib directory if present + files=`ls $2/lib/lib$3.* 2> /dev/null | wc -l` + AS_IF([test "$opal_check_$3_lib_happy" != "yes"], + [AC_MSG_CHECKING([for lib$3 in $2/lib]) + AS_IF([test "$files" -gt "0"], + [AC_MSG_RESULT([found]) + LDFLAGS="$LDFLAGS -L$2/lib" + AC_CHECK_LIB([$3], [$4], + [opal_check_$3_lib_happy=yes + $3_LDFLAGS=-L$2/lib + $3_rpath=$2/lib], + [opal_check_$3_lib_happy=no])], + [opal_check_$3_lib_happy=no + AC_MSG_RESULT([not found])])]) + + # restore flags + CPPFLAGS=$opal_check_$3_save_CPPFLAGS + LDFLAGS=$opal_check_$3_save_LDFLAGS + LIBS=$opal_check_$3_save_LIBS + + AS_IF([test "$opal_check_$3_hdr_happy" = "yes" && test "$opal_check_$3_lib_happy" = "yes"], + [$6], [$7]) + +]) + +# OPAL_CHECK_PMI() +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_PMI],[ + OPAL_VAR_SCOPE_PUSH([check_pmi_install_dir check_pmi_lib_dir default_pmi_loc default_pmi_libloc slurm_pmi_found]) + + AC_ARG_WITH([pmi], + [AC_HELP_STRING([--with-pmi(=DIR)], + [Build PMI support, optionally adding DIR to the search path (default: no)])], + [], with_pmi=no) + + AC_ARG_WITH([pmi-libdir], + [AC_HELP_STRING([--with-pmi-libdir(=DIR)], + [Look for libpmi or libpmi2 in the given directory, DIR/lib or DIR/lib64])]) + + check_pmi_install_dir= + check_pmi_lib_dir= + default_pmi_loc= + default_pmi_libloc= + slurm_pmi_found= + + AC_MSG_CHECKING([if user requested PMI support]) + AS_IF([test "$with_pmi" = "no"], + [AC_MSG_RESULT([no]) + $3], + [AC_MSG_RESULT([yes]) + # cannot use OPAL_CHECK_PACKAGE as its backend header + # support appends "include" to the path, which won't + # work with slurm :-( + AS_IF([test ! -z "$with_pmi" && test "$with_pmi" != "yes"], + [check_pmi_install_dir=$with_pmi + default_pmi_loc=no], + [check_pmi_install_dir=/usr + default_pmi_loc=yes]) + AS_IF([test ! -z "$with_pmi_libdir"], + [check_pmi_lib_dir=$with_pmi_libdir + default_pmi_libloc=no], + [check_pmi_lib_dir=$check_pmi_install_dir + AS_IF([test "$default_pmi_loc" = "no"], + [default_pmi_libloc=no], + [default_pmi_libloc=yes])]) + + # check for pmi-1 lib */ + slurm_pmi_found=no + OPAL_CHECK_PMI_LIB([$check_pmi_install_dir], + [$check_pmi_lib_dir], + [pmi], [PMI_Init], + [slurm_pmi_found=yes], + [opal_enable_pmi1=yes + opal_pmi1_LIBS="-lpmi" + AC_SUBST(opal_pmi1_LIBS)], + [opal_enable_pmi1=no]) + + AS_IF([test "$opal_enable_pmi1" = "yes"], + [AS_IF([test "$default_pmi_loc" = "no" || test "$slurm_pmi_found" = "yes"], + [opal_pmi1_CPPFLAGS="$pmi_CPPFLAGS" + AC_SUBST(opal_pmi1_CPPFLAGS)]) + AS_IF([test "$default_pmi_libloc" = "no" || test "$slurm_pmi_found" = "yes"], + [opal_pmi1_LDFLAGS="$pmi_LDFLAGS" + AC_SUBST(opal_pmi1_LDFLAGS) + opal_pmi1_rpath="$pmi_rpath" + AC_SUBST(opal_pmi1_rpath)])]) + + # check for pmi2 lib */ + slurm_pmi_found=no + OPAL_CHECK_PMI_LIB([$check_pmi_install_dir], + [$check_pmi_lib_dir], + [pmi2], [PMI2_Init], + [slurm_pmi_found=yes], + [opal_enable_pmi2=yes + opal_pmi2_LIBS="-lpmi2" + AC_SUBST(opal_pmi2_LIBS)], + [opal_enable_pmi2=no]) + + AS_IF([test "$opal_enable_pmi2" = "yes"], + [AS_IF([test "$default_pmi_loc" = "no" || test "$slurm_pmi_found" = "yes"], + [opal_pmi2_CPPFLAGS="$pmi2_CPPFLAGS" + AC_SUBST(opal_pmi2_CPPFLAGS)]) + AS_IF([test "$default_pmi_libloc" = "no" || test "$slurm_pmi_found" = "yes"], + [opal_pmi2_LDFLAGS="$pmi2_LDFLAGS" + AC_SUBST(opal_pmi2_LDFLAGS) + opal_pmi2_rpath="$pmi2_rpath" + AC_SUBST(opal_pmi2_rpath)])]) + + # since support was explicitly requested, then we should error out + # if we didn't find the required support + AC_MSG_CHECKING([can PMI support be built]) + AS_IF([test "$opal_enable_pmi1" != "yes" && test "$opal_enable_pmi2" != "yes"], + [AC_MSG_RESULT([no]) + AC_MSG_WARN([PMI support requested (via --with-pmi) but neither pmi.h]) + AC_MSG_WARN([nor pmi2.h were found under locations:]) + AC_MSG_WARN([ $check_pmi_install_dir]) + AC_MSG_WARN([ $check_pmi_install_dir/slurm]) + AC_MSG_WARN([Specified path: $with_pmi]) + AC_MSG_WARN([OR neither libpmi nor libpmi2 were found under:]) + AC_MSG_WARN([ $check_pmi_lib_dir/lib]) + AC_MSG_WARN([ $check_pmi_lib_dir/lib64]) + AC_MSG_WARN([Specified path: $with_pmi_libdir]) + AC_MSG_ERROR([Aborting])], + [AC_MSG_RESULT([yes])]) + ]) + + OPAL_VAR_SCOPE_POP +]) + +AC_DEFUN([OPAL_CHECK_PMIX],[ + + OPAL_VAR_SCOPE_PUSH([opal_external_pmix_save_CPPFLAGS opal_external_pmix_save_LDFLAGS opal_external_pmix_save_LIBS]) + + AC_ARG_WITH([pmix], + [AC_HELP_STRING([--with-pmix(=DIR)], + [Build PMIx support. DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of PMIx. "external" forces Open MPI to use an external installation of PMIx. Supplying a valid directory name also forces Open MPI to use an external installation of PMIx, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries. Note that Open MPI does not support --without-pmix.])]) + + AS_IF([test "$with_pmix" = "no"], + [AC_MSG_WARN([Open MPI requires PMIx support. It can be built]) + AC_MSG_WARN([with either its own internal copy of PMIx, or with]) + AC_MSG_WARN([an external copy that you supply.]) + AC_MSG_ERROR([Cannot continue])]) + + AC_MSG_CHECKING([if user requested external PMIx support($with_pmix)]) + AS_IF([test -z "$with_pmix" || test "$with_pmix" = "yes" || test "$with_pmix" = "internal"], + [AC_MSG_RESULT([no]) + opal_external_pmix_happy=no], + + [AC_MSG_RESULT([yes]) + # check for external pmix lib */ + AS_IF([test "$with_pmix" = "external"], + [pmix_ext_install_dir=/usr], + [pmix_ext_install_dir=$with_pmix]) + + # Make sure we have the headers and libs in the correct location + OPAL_CHECK_WITHDIR([external-pmix], [$pmix_ext_install_dir/include], [pmix.h]) + OPAL_CHECK_WITHDIR([external-libpmix], [$pmix_ext_install_dir/lib], [libpmix.*]) + + # check the version + opal_external_pmix_save_CPPFLAGS=$CPPFLAGS + opal_external_pmix_save_LDFLAGS=$LDFLAGS + opal_external_pmix_save_LIBS=$LIBS + + # if the pmix_version.h file does not exist, then + # this must be from a pre-1.1.5 version + AC_MSG_CHECKING([PMIx version]) + CPPFLAGS="-I$pmix_ext_install_dir/include $CPPFLAGS" + AS_IF([test "x`ls $pmix_ext_install_dir/include/pmix_version.h 2> /dev/null`" = "x"], + [AC_MSG_RESULT([version file not found - assuming v1.1.4]) + opal_external_pmix_version_found=1 + opal_external_pmix_version=114], + [AC_MSG_RESULT([version file found]) + opal_external_pmix_version_found=0]) + + # if it does exist, then we need to parse it to find + # the actual release series + AS_IF([test "$opal_external_pmix_version_found" = "0"], + [AC_MSG_CHECKING([version 3x]) + AC_PREPROC_IFELSE([AC_LANG_PROGRAM([ + #include + #if (PMIX_VERSION_MAJOR != 3L) + #error "not version 3" + #endif + ], [])], + [AC_MSG_RESULT([found]) + opal_external_pmix_version=3X + opal_external_pmix_version_found=1], + [AC_MSG_RESULT([not found])])]) + + AS_IF([test "$opal_external_pmix_version_found" = "0"], + [AC_MSG_CHECKING([version 2x]) + AC_PREPROC_IFELSE([AC_LANG_PROGRAM([ + #include + #if (PMIX_VERSION_MAJOR != 2L) + #error "not version 2" + #endif + ], [])], + [AC_MSG_RESULT([found]) + opal_external_pmix_version=2X + opal_external_pmix_version_found=1], + [AC_MSG_RESULT([not found])])]) + + AS_IF([test "$opal_external_pmix_version_found" = "0"], + [AC_MSG_CHECKING([version 1x]) + AC_PREPROC_IFELSE([AC_LANG_PROGRAM([ + #include + #if (PMIX_VERSION_MAJOR != 1L) + #error "not version 1" + #endif + ], [])], + [AC_MSG_RESULT([found]) + opal_external_pmix_version=1X + opal_external_pmix_version_found=1], + [AC_MSG_RESULT([not found])])]) + + AS_IF([test "x$opal_external_pmix_version" = "x"], + [AC_MSG_WARN([External PMIx support requested, but version]) + AC_MSG_WARN([information of the external lib could not]) + AC_MSG_WARN([be detected]) + AC_MSG_ERROR([cannot continue])]) + + CPPFLAGS=$opal_external_pmix_save_CPPFLAGS + LDFLAGS=$opal_external_pmix_save_LDFLAGS + LIBS=$opal_external_pmix_save_LIBS + + opal_external_pmix_CPPFLAGS="-I$pmix_ext_install_dir/include" + opal_external_pmix_LDFLAGS=-L$pmix_ext_install_dir/lib + opal_external_pmix_LIBS=-lpmix + opal_external_pmix_happy=yes]) + + OPAL_VAR_SCOPE_POP +]) diff --git a/config/opal_check_portals4.m4 b/config/opal_check_portals4.m4 new file mode 100644 index 00000000..086bb3f6 --- /dev/null +++ b/config/opal_check_portals4.m4 @@ -0,0 +1,109 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006 QLogic Corp. All rights reserved. +dnl Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_CHECK_PORTALS4(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if PORTALS4 support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OPAL_CHECK_PORTALS4],[ + if test -z "$ompi_check_portals4_happy" ; then + AC_ARG_WITH([portals4], + [AC_HELP_STRING([--with-portals4(=DIR)], + [Build Portals4 support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + OPAL_CHECK_WITHDIR([portals4], [$with_portals4], [include/portals4.h]) + AC_ARG_WITH([portals4-libdir], + [AC_HELP_STRING([--with-portals4-libdir=DIR], + [Search for Portals4 libraries in DIR])]) + OPAL_CHECK_WITHDIR([portals4-libdir], [$with_portals4_libdir], [libportals.*]) + + ompi_check_portals4_$1_save_CPPFLAGS="$CPPFLAGS" + ompi_check_portals4_$1_save_LDFLAGS="$LDFLAGS" + ompi_check_portals4_$1_save_LIBS="$LIBS" + + AS_IF([test "$with_portals4" != "no"], + [AS_IF([test ! -z "$with_portals4" && test "$with_portals4" != "yes"], + [ompi_check_portals4_dir="$with_portals4"]) + AS_IF([test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"], + [ompi_check_portals4_libdir="$with_portals4_libdir"]) + + OPAL_CHECK_PACKAGE([opal_check_portals4], + [portals4.h], + [portals], + [PtlLEAppend], + [], + [$ompi_check_portals4_dir], + [$ompi_check_portals4_libdir], + [ompi_check_portals4_happy="yes"], + [ompi_check_portals4_happy="no"])], + [ompi_check_portals4_happy="no"]) + + CPPFLAGS="$ompi_check_portals4_$1_save_CPPFLAGS" + LDFLAGS="$ompi_check_portals4_$1_save_LDFLAGS" + LIBS="$ompi_check_portals4_$1_save_LIBS" + + max_md_size=0 + AC_ARG_WITH([portals4-max-md-size], + [AC_HELP_STRING([--with-portals4-max-md-size=SIZE], + [Log base 2 of the maximum size in bytes of a memory descriptor. Should only be set for implementations which do not support binding all of virtual address space.])]) + AS_IF([test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"], + [AC_MSG_ERROR([--with-portals4-max-md-size requires an integer argument])], + [AS_IF([test -n "$with_portals4_max_md_size"], + [max_md_size="$with_portals4_max_md_size"])]) + AC_DEFINE_UNQUOTED([OPAL_PORTALS4_MAX_MD_SIZE], [$max_md_size], + [Log base 2 of the maximum size in bytes of a memory descriptor. Set to 0 if MD can bind all of memory.]) + + max_va_size=0 + AC_ARG_WITH([portals4-max-va-size], + [AC_HELP_STRING([--with-portals4-max-va-size=SIZE], + [Log base 2 of the maximum size in bytes of the user virtual address space. Should only be set for implementations which do not support binding all of virtual address space.])]) + AS_IF([test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"], + [AC_MSG_ERROR([--with-portals4-max-va-size requires an integer argument])], + [AS_IF([test -n "$with_portals4_max_va_size"], + [max_va_size="$with_portals4_max_va_size"])]) + AC_DEFINE_UNQUOTED([OPAL_PORTALS4_MAX_VA_SIZE], [$max_va_size], + [Log base 2 of the maximum size in bytes of the user virtual address space. Set to 0 if MD can bind all of memory.]) + + AS_IF([(test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 )], + [AC_ERROR([If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set.])]) + AS_IF([test $max_md_size -ge $max_va_size], + [max_md_size=0 + max_va_size=0]) + AS_IF([test $max_md_size -ne 0 && test $max_va_size -ne 0], + [AC_MSG_NOTICE([Portals 4 address space size: $max_md_size, $max_va_size])]) + + OPAL_SUMMARY_ADD([[Transports]],[[Portals4]],[$1],[$ompi_check_portals4_happy]) + fi + + AS_IF([test "$ompi_check_portals4_happy" = "yes"], + [$1_LDFLAGS="[$]$1_LDFLAGS $opal_check_portals4_LDFLAGS" + $1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_portals4_CPPFLAGS" + $1_LIBS="[$]$1_LIBS $opal_check_portals4_LIBS" + $2], + [AS_IF([test ! -z "$with_portals4" && test "$with_portals4" != "no"], + [AC_MSG_ERROR([Portals4 support requested but not found. Aborting])]) + $3]) +]) + diff --git a/config/opal_check_ps.m4 b/config/opal_check_ps.m4 new file mode 100644 index 00000000..af7820f3 --- /dev/null +++ b/config/opal_check_ps.m4 @@ -0,0 +1,43 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# See if there is a ps command that will produce the output we are +# interested in. If so, then save it away. Otherwise, the string is +# set to unknown. + +AC_DEFUN([OPAL_PS_FLAVOR_CHECK],[ +AC_MSG_CHECKING([for flavor of ps to use]) +PS_FLAVOR="unknown" +ps -A -o fname > /dev/null 2>&1 + +if test "$?" = "0"; then + PS_FLAVOR="ps -A -o fname,pid,user" +else + ps -A -o command > /dev/null 2>&1 + if test "$?" = "0"; then + PS_FLAVOR="ps -A -o command,pid,user" + fi +fi +AC_MSG_RESULT([$PS_FLAVOR]) +AC_DEFINE_UNQUOTED([ORTE_CLEAN_PS_CMD], ["$PS_FLAVOR"], [Specific ps command to use in orte-clean]) +]) + diff --git a/config/opal_check_pthread_pids.m4 b/config/opal_check_pthread_pids.m4 new file mode 100644 index 00000000..cb3b20a8 --- /dev/null +++ b/config/opal_check_pthread_pids.m4 @@ -0,0 +1,112 @@ +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CHECK_PTHREAD_PIDS],[ +# +# Arguments: none +# +# Dependencies: None +# +# Sets: +# OPAL_THREADS_HAVE_DIFFERENT_PIDS (variable) +# +# Test for Linux-like threads in the system. OPAL no longer supports +# systems with different PIDs for threads in the same process, so error +# out if we detect that case. +# + +AC_MSG_CHECKING([if threads have different pids (pthreads on linux)]) + +OPAL_VAR_SCOPE_PUSH([CFLAGS_save CPPFLAGS_save LDFLAGS_save LIBS_save MSG]) +CFLAGS_save="$CFLAGS" +CFLAGS="$CFLAGS $THREAD_CFLAGS" +CPPFLAGS_save="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $THREAD_CPPFLAGS" +LDFLAGS_save="$LDFLAGS" +LDFLAGS="$LDFLAGS $THREAD_LDFLAGS" +LIBS_save="$LIBS" +LIBS="$LIBS $THREAD_LIBS" +AC_RUN_IFELSE([AC_LANG_SOURCE([#include +#include +#include +#include + +void *checkpid(void *arg); +int main() { + pthread_t thr; + int pid, *retval; + pid = getpid(); + pthread_create(&thr, NULL, checkpid, &pid); + pthread_join(thr, (void **) &retval); + exit(*retval); +} + +static int ret; +void *checkpid(void *arg) { + int ppid = *((int *) arg); + if (ppid == getpid()) + ret = 0; + else + ret = 1; + pthread_exit((void *) &ret); +}])], +[MSG=no OPAL_THREADS_HAVE_DIFFERENT_PIDS=0], +[MSG=yes OPAL_THREADS_HAVE_DIFFERENT_PIDS=1], +[ + # If we're cross compiling, we can't do another AC_* function here beause + # it we haven't displayed the result from the last one yet. So defer + # another test until below. + OPAL_THREADS_HAVE_DIFFERENT_PIDS= + MSG="cross compiling (need another test)"]) + +CFLAGS="$CFLAGS_save" +CPPFLAGS="$CPPFLAGS_save" +LDFLAGS="$LDFLAGS_save" +LIBS="$LIBS_save" + +AC_MSG_RESULT([$MSG]) + +AS_IF([test "x$OPAL_THREADS_HAVE_DIFFERENT_PIDS" = "x"], + [ # If we are cross-compiling, look for the symbol + # __linuxthreads_create_event, which seems to only exist in the + # Linux Threads-based pthreads implementation (i.e., the one + # that has different PIDs for each thread). We *could* switch + # on $host here and only test *linux* hosts, but this test is + # pretty unique, so why bother? Note that AC_CHECK_FUNC works + # properly in cross-compiling environments in recent-enough + # versions of Autoconf (which is one of the reasons we mandate + # recent versions in autogen!). + AC_CHECK_FUNC([__linuxthreads_create_event], + [OPAL_THREADS_HAVE_DIFFERENT_PIDS=1])]) + +AS_IF([test "$OPAL_THREADS_HAVE_DIFFERENT_PIDS" = "1"], + [AC_MSG_WARN([This version of Open MPI only supports environments where]) + AC_MSG_WARN([threads have the same PID. Please use an older version of]) + AC_MSG_WARN([Open MPI if you need support on systems with different]) + AC_MSG_WARN([PIDs for threads in the same process. Open MPI 1.4.x]) + AC_MSG_WARN([supports such systems, as does at least some versions the]) + AC_MSG_WARN([Open MPI 1.5.x series.]) + AC_MSG_ERROR([Cannot continue]) + ]) + +# +# if pthreads is not available, then the system does not have an insane threads +# model +# +OPAL_VAR_SCOPE_POP])dnl diff --git a/config/opal_check_singularity.m4 b/config/opal_check_singularity.m4 new file mode 100644 index 00000000..1b0c38bd --- /dev/null +++ b/config/opal_check_singularity.m4 @@ -0,0 +1,60 @@ +# -*- shell-script ; indent-tabs-mode:nil -*- +# +# Copyright (c) 2016 Intel, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OPAL_CHECK_SINGULARITY(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_SINGULARITY],[ + OPAL_VAR_SCOPE_PUSH([spath have_singularity]) + + AC_ARG_WITH([singularity], + [AC_HELP_STRING([--with-singularity(=DIR)], + [Build support for the Singularity container, optionally adding DIR to the search path])]) + spath= + AC_MSG_CHECKING([if Singularity support is to be built]) + AS_IF([test "$with_singularity" = "no"], + [AC_MSG_RESULT([no]) + have_singularity=no], + [AC_MSG_RESULT([yes]) + AS_IF([test -z "$with_singularity" || test "$with_singularity" = "yes"], + [ # look for the singularity command in the default path + AC_CHECK_PROG([SINGULARITY], [singularity], [singularity]) + AS_IF([test "$SINGULARITY" != ""], + [have_singularity=yes], + [AS_IF([test "$with_singularity" = "yes"], + [AC_MSG_WARN([Singularity support requested, but required executable]) + AC_MSG_WARN(["singularity" not found in default locations]) + AC_MSG_ERROR([Cannot continue])]) + have_singularity=no])], + [ AC_MSG_CHECKING([for existence of $with_singularity/bin]) + # look for the singularity command in the bin subdirectory + AS_IF([test ! -d "$with_singularity/bin"], + [AC_MSG_RESULT([not found]) + AC_MSG_WARN([Directory $with_singularity/bin not found]) + AC_MSG_ERROR([Cannot continue])], + [AC_MSG_RESULT([found])]) + save_path=$PATH + PATH=$with_singularity/bin:$PATH + AC_CHECK_PROG([SINGULARITY], [singularity], [singularity]) + AS_IF([test "$SINGULARITY" != ""], + [have_singularity=yes + spath=$with_singularity/bin], + [have_singlarity=no + AC_MSG_WARN([Singularity support requested, but required executable]) + AC_MSG_WARN(["singularity" not found in either default or specified path]) + AC_MSG_ERROR([Cannot continue])]) + PATH=$save_path + ] + )]) + + AC_DEFINE_UNQUOTED(OPAL_SINGULARITY_PATH, "$spath", [Path to Singularity binaries]) + AS_IF([test "$have_singularity" = "yes"], + [$2], [$3]) + OPAL_VAR_SCOPE_POP +]) diff --git a/config/opal_check_ugni.m4 b/config/opal_check_ugni.m4 new file mode 100644 index 00000000..6ae8bc25 --- /dev/null +++ b/config/opal_check_ugni.m4 @@ -0,0 +1,82 @@ +dnl -*- Mode: Shell-script ; indent-tabs-mode:nil -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2006 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006 QLogic Corp. All rights reserved. +dnl Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2011-2016 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_CHECK_UGNI(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if GNI support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +# + +AC_DEFUN([OPAL_CHECK_UGNI], [ + if test -z "$opal_check_ugni_happy" ; then + AC_ARG_WITH([ugni], [AC_HELP_STRING([--with-ugni], + [Build support for Cray GNI. Set PKG_CONFIG_PATH env. variable to specify alternate path.])]) + + opal_check_ugni_happy="no" + + AS_IF([test "$with_ugni" = "no"], + [opal_check_ugni_happy="no"], + [PKG_CHECK_MODULES([CRAY_UGNI], [cray-ugni], + [opal_check_ugni_happy="yes"], + [opal_check_ugni_happy="no"])]) + + opal_check_ugni_$1_save_CPPFLAGS="$CPPFLAGS" + opal_check_ugni_$1_save_LIBS="$LIBS" + + if test "$opal_check_ugni_happy" = "yes" ; then + CPPFLAGS="$CPPFLAGS $CRAY_UGNI_CFLAGS" + LIBS="$LIBS $CRAY_UGNI_LIBS" +# echo "+++++++++++++++++++++++CPPFLAGS",$CPPFLAGS +# echo "+++++++++++++++++++++++LDFLAGSS",$LDFLAGS +# echo "+++++++++++++++++++++++1_CPPFLAGS",$$1_CPPFLAGS +# echo "+++++++++++++++++++++++1_LDFLAGSS",$$1_LDFLAGS + +# sanity checks + + AC_CHECK_HEADER([gni_pub.h],[],AC_MSG_ERROR(['gni_pub.h not found.'])) + AC_CHECK_FUNCS([GNI_GetJobResInfo]) + + CPPFLAGS="$opal_check_ugni_$1_save_CPPFLAGS" + LIBS="$opal_check_ugni_$1_save_LIBS" + fi + + AS_IF([test "$opal_check_ugni_happy" = "yes" && test "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([GNI driver does not currently support progress threads. Disabling.]) + opal_check_ugni_happy="no"]) + + OPAL_SUMMARY_ADD([[Transports]],[[Cray uGNI (Gemini/Aries)]],[$1],[$opal_check_ugni_happy]) + fi + + AS_IF([test "$opal_check_ugni_happy" = "yes"], + [$1_CPPFLAGS="[$]$1_CPPFLAGS $CRAY_UGNI_CFLAGS" + $1_LIBS="[$]$1_LIBS $CRAY_UGNI_LIBS" + $2], + [AS_IF([test ! -z "$with_ugni" && test "$with_ugni" != "no"], + [AC_MSG_ERROR([GNI support requested but not found. Cannot continue.])]) + $3]) + +]) diff --git a/config/opal_check_vendor.m4 b/config/opal_check_vendor.m4 new file mode 100644 index 00000000..c227c2a3 --- /dev/null +++ b/config/opal_check_vendor.m4 @@ -0,0 +1,277 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +# OPAL_C_COMPILER_VENDOR(VENDOR_VARIABLE) +# --------------------------------------- +# Set shell variable VENDOR_VARIABLE to the name of the compiler +# vendor for the current C compiler. +# +# See comment for _OPAL_CHECK_COMPILER_VENDOR for a complete +# list of currently detected compilers. +AC_DEFUN([OPAL_C_COMPILER_VENDOR], [ + AC_REQUIRE([AC_PROG_CC]) + + AC_CACHE_CHECK([for the C compiler vendor], + [opal_cv_c_compiler_vendor], + [AC_LANG_PUSH(C) + _OPAL_CHECK_COMPILER_VENDOR([opal_cv_c_compiler_vendor]) + AC_LANG_POP(C)]) + + $1="$opal_cv_c_compiler_vendor" +]) + + +# OPAL_CXX_COMPILER_VENDOR(VENDOR_VARIABLE) +# --------------------------------------- +# Set shell variable VENDOR_VARIABLE to the name of the compiler +# vendor for the current C++ compiler. +# +# See comment for _OPAL_CHECK_COMPILER_VENDOR for a complete +# list of currently detected compilers. +AC_DEFUN([OPAL_CXX_COMPILER_VENDOR], [ + AC_REQUIRE([AC_PROG_CXX]) + + AC_CACHE_CHECK([for the C++ compiler vendor], + [opal_cv_cxx_compiler_vendor], + [AC_LANG_PUSH(C++) + _OPAL_CHECK_COMPILER_VENDOR([opal_cv_cxx_compiler_vendor]) + AC_LANG_POP(C++)]) + + $1="$opal_cv_c_compiler_vendor" +]) + +# workaround to avoid syntax error with Autoconf < 2.68: +m4_ifndef([AC_LANG_DEFINES_PROVIDED], + [m4_define([AC_LANG_DEFINES_PROVIDED])]) + +# OPAL_IFDEF_IFELSE(symbol, [action-if-defined], +# [action-if-not-defined]) +# ---------------------------------------------- +# Run compiler to determine if preprocessor symbol "symbol" is +# defined by the compiler. +AC_DEFUN([OPAL_IFDEF_IFELSE], [ + AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED +#ifndef $1 +#error "symbol $1 not defined" +choke me +#endif], [$2], [$3])]) + + +# OPAL_IF_IFELSE(symbol, [action-if-defined], +# [action-if-not-defined]) +# ---------------------------------------------- +# Run compiler to determine if preprocessor symbol "symbol" is +# defined by the compiler. +AC_DEFUN([OPAL_IF_IFELSE], [ + AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED +#if !( $1 ) +#error "condition $1 not met" +choke me +#endif], [$2], [$3])]) + + +# _OPAL_CHECK_COMPILER_VENDOR(VENDOR_VARIABLE) +# -------------------------------------------- +# Set shell variable VENDOR_VARIABLE to the name of the compiler +# vendor for the compiler for the current language. Language must be +# one of C, OBJC, or C++. +# +# thanks to http://predef.sourceforge.net/precomp.html for the list +# of defines to check. +AC_DEFUN([_OPAL_CHECK_COMPILER_VENDOR], [ + opal_check_compiler_vendor_result="unknown" + + # GNU is probably the most common, so check that one as soon as + # possible. Intel pretends to be GNU, so need to check Intel + # before checking for GNU. + + # Intel + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__INTEL_COMPILER) || defined(__ICC)], + [opal_check_compiler_vendor_result="intel"])]) + + # Fujitsu + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__FUJITSU)], + [opal_check_compiler_vendor_result="fujitsu"])]) + + # GNU + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__GNUC__], + [opal_check_compiler_vendor_result="gnu" + + # We do not support gccfss as a compiler so die if + # someone tries to use said compiler. gccfss (gcc + # for SPARC Systems) is a compiler that is no longer + # supported by Oracle and it has some major flaws + # that prevents it from actually compiling OMPI code. + # So if we detect it we automatically bail. + + if ($CC --version | grep gccfss) >/dev/null 2>&1; then + AC_MSG_RESULT([gccfss]) + AC_MSG_WARN([Detected gccfss being used to compile Open MPI.]) + AC_MSG_WARN([Because of several issues Open MPI does not support]) + AC_MSG_WARN([the gccfss compiler. Please use a different compiler.]) + AC_MSG_WARN([If you didn't think you used gccfss you may want to]) + AC_MSG_WARN([check to see if the compiler you think you used is]) + AC_MSG_WARN([actually a link to gccfss.]) + AC_MSG_ERROR([Cannot continue]) + fi])]) + + # Borland Turbo C + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__TURBOC__], + [opal_check_compiler_vendor_result="borland"])]) + + # Borland C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__BORLANDC__], + [opal_check_compiler_vendor_result="borland"])]) + + # Comeau C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__COMO__], + [opal_check_compiler_vendor_result="comeau"])]) + + # Compaq C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__DECC) || defined(VAXC) || defined(__VAXC)], + [opal_check_compiler_vendor_result="compaq"], + [OPAL_IF_IFELSE([defined(__osf__) && defined(__LANGUAGE_C__)], + [opal_check_compiler_vendor_result="compaq"], + [OPAL_IFDEF_IFELSE([__DECCXX], + [opal_check_compiler_vendor_result="compaq"])])])]) + + # Cray C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([_CRAYC], + [opal_check_compiler_vendor_result="cray"])]) + + # Diab C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__DCC__], + [opal_check_compiler_vendor_result="diab"])]) + + # Digital Mars + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__DMC__) || defined(__SC__) || defined(__ZTC__)], + [opal_check_compiler_vendor_result="digital mars"])]) + + # HP ANSI C / aC++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__HP_cc) || defined(__HP_aCC)], + [opal_check_compiler_vendor_result="hp"])]) + + # IBM XL C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__xlC__) || defined(__IBMC__) || defined(__IBMCPP__)], + [opal_check_compiler_vendor_result="ibm"], + [OPAL_IF_IFELSE([defined(_AIX) && !defined(__GNUC__)], + [opal_check_compiler_vendor_result="ibm"])])]) + + # KAI C++ (rest in peace) + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__KCC], + [opal_check_compiler_vendor_result="kai"])]) + + # LCC + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__LCC__], + [opal_check_compiler_vendor_result="lcc"])]) + + # MetaWare High C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__HIGHC__], + [opal_check_compiler_vendor_result="metaware high"])]) + + # Metrowerks Codewarrior + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__MWERKS__], + [opal_check_compiler_vendor_result="metrowerks"])]) + + # MIPSpro (SGI) + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(sgi) || defined(__sgi)], + [opal_check_compiler_vendor_result="sgi"])]) + + # MPW C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS)], + [opal_check_compiler_vendor_result="mpw"])]) + + # Microsoft + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [# Always use C compiler when checking for Microsoft, as + # Visual C++ doesn't recognize .cc as a C++ file. + AC_LANG_PUSH(C) + OPAL_IF_IFELSE([defined(_MSC_VER) || defined(__MSC_VER)], + [opal_check_compiler_vendor_result="microsoft"]) + AC_LANG_POP(C)]) + + # Norcroft C + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__CC_NORCROFT], + [opal_check_compiler_vendor_result="norcroft"])]) + + # Pelles C + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__POCC__], + [opal_check_compiler_vendor_result="pelles"])]) + + # Portland Group + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__PGI], + [opal_check_compiler_vendor_result="portland group"])]) + + # SAS/C + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(SASC) || defined(__SASC) || defined(__SASC__)], + [opal_check_compiler_vendor_result="sas"])]) + + # Sun Workshop C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IF_IFELSE([defined(__SUNPRO_C) || defined(__SUNPRO_CC)], + [opal_check_compiler_vendor_result="sun"])]) + + # TenDRA C/C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__TenDRA__], + [opal_check_compiler_vendor_result="tendra"])]) + + # Tiny C + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__TINYC__], + [opal_check_compiler_vendor_result="tiny"])]) + + # USL C + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__USLC__], + [opal_check_compiler_vendor_result="usl"])]) + + # Watcom C++ + AS_IF([test "$opal_check_compiler_vendor_result" = "unknown"], + [OPAL_IFDEF_IFELSE([__WATCOMC__], + [opal_check_compiler_vendor_result="watcom"])]) + + $1="$opal_check_compiler_vendor_result" + unset opal_check_compiler_vendor_result +]) diff --git a/config/opal_check_verbs.m4 b/config/opal_check_verbs.m4 new file mode 100644 index 00000000..f5eea2c7 --- /dev/null +++ b/config/opal_check_verbs.m4 @@ -0,0 +1,120 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2006-2011 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved. +dnl Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +# Internal helper macro to look for the verbs libdir +# -------------------------------------------------------- +AC_DEFUN([_OPAL_CHECK_VERBS_LIBDIR],[ + AS_IF([test -d "$1"], + [AS_IF([test "x`ls $1/libibverbs.* 2> /dev/null`" != "x"], + [opal_verbs_libdir="$1"]) + ]) +]) + +# Internal helper macro to look for the verbs dir +# -------------------------------------------------------- +AC_DEFUN([_OPAL_CHECK_VERBS_DIR],[ + AS_IF([test -d "$1"], + [AS_IF([test -f "$1/include/infiniband/verbs.h"], + [opal_verbs_dir="$1"]) + ]) +]) + +# OPAL_CHECK_VERBS_DIR +# -------------------------------------------------------- +# Add --with-verbs options, and if directories are specified, +# sanity check them. +# +# At the end of this macro: +# +# 1. $opal_want_verbs will be set to: +# "yes" if --with-verbs or --with-verbs=DIR was specified +# "no" if --without-verbs was specified) +# "optional" if neither --with-verbs* nor --without-verbs was specified +# +# 2. $opal_verbs_dir and $opal_verbs_libdir with either both be set or +# both be empty. +# +AC_DEFUN([OPAL_CHECK_VERBS_DIR],[ + + # Add --with options + AC_ARG_WITH([verbs], + [AC_HELP_STRING([--with-verbs(=DIR)], + [Build verbs support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) + AC_ARG_WITH([verbs-libdir], + [AC_HELP_STRING([--with-verbs-libdir=DIR], + [Search for verbs libraries in DIR])]) + + # Sanity check the --with values + OPAL_CHECK_WITHDIR([verbs], [$with_verbs], + [include/infiniband/verbs.h]) + OPAL_CHECK_WITHDIR([verbs-libdir], [$with_verbs_libdir], + [libibverbs.*]) + + # Set standardized shell variables for OFED lovin' components to + # use. Either both of $opal_verbs_dir and + # $verbs_libdir will be set, or neither will be set. + opal_want_verbs=no + AS_IF([test -z "$with_verbs"], + [opal_want_verbs=optional], + [AS_IF([test "$with_verbs" = "no"], + [opal_want_verbs=no], + [opal_want_verbs=yes]) + ]) + + opal_verbs_dir= + AS_IF([test -n "$with_verbs" && test "$with_verbs" != "yes" && test "$with_verbs" != "no"], + [opal_verbs_dir=$with_verbs]) + + opal_verbs_libdir= + AS_IF([test -n "$with_verbs_libdir" && test "$with_verbs_libdir" != "yes" && test "$with_verbs_libdir" != "no"], + [opal_verbs_libdir=$with_verbs_libdir]) + + # If the top dir was specified but the libdir was not, look for + # it. Note that if the user needs a specific libdir (i.e., if our + # hueristic ordering below is not sufficient), they need to + # specify it. + AS_IF([test -z "$opal_verbs_libdir" && test -n "$opal_verbs_dir"], + [_OPAL_CHECK_VERBS_LIBDIR(["$opal_verbs_dir/lib"])]) + AS_IF([test -z "$opal_verbs_libdir" && test -n "$opal_verbs_dir"], + [_OPAL_CHECK_VERBS_LIBDIR(["$opal_verbs_dir/lib64"])]) + AS_IF([test -z "$opal_verbs_libdir" && test -n "$opal_verbs_dir"], + [_OPAL_CHECK_VERBS_LIBDIR(["$opal_verbs_dir/lib32"])]) + AS_IF([test -z "$opal_verbs_libdir" && test -n "$opal_verbs_dir"], + [AC_MSG_WARN([Could not find libibverbs in the usual locations under $opal_verbs_dir]) + AC_MSG_ERROR([Cannot continue]) + ]) + + # If the libdir was specified, but the top dir was not, look for + # it. Note that if the user needs a specific top dir (i.e., if + # our hueristic below is not sufficient), they need to specify it. + AS_IF([test -z "$opal_verbs" && test -n "$opal_verbs_libdir"], + [_OPAL_CHECK_VERBS_DIR([`dirname "$opal_verbs_libdir"`])]) + AS_IF([test -z "$opal_verbs_dir" && test -n "$opal_verbs_libdir"], + [AC_MSG_WARN([Could not find verbs.h in the usual locations under $opal_verbs_dir]) + AC_MSG_ERROR([Cannot continue]) + ]) +]) diff --git a/config/opal_check_version.m4 b/config/opal_check_version.m4 new file mode 100644 index 00000000..bcc41173 --- /dev/null +++ b/config/opal_check_version.m4 @@ -0,0 +1,79 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2016 IBM Corporation. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# Parameters: (use a version "1.1.4rc2" as the example) +# * prefix +# Will export a variable $prefix_version_cmp +# - action_if_less => "less" +# - action_if_equal => "equal" +# - action_if_equal_series => "series" +# - action_if_greater => "greater" +# * version_actual +# Actual version string +# * version_desired +# Desired version string to check against +# * action_if_less +# Action to take if the version is strictly less than +# "1.1.3" < "1.1.4rc2" +# * action_if_equal +# Action to take if the version matches exactly +# "1.1.4rc2" = "1.1.4rc2" +# * action_if_equal_series +# Action to take if the version matches to this series +# "1.1.4rc1" ~=~ "1.1.4rc2" +# "1.1.4" ~=~ "1.1.4rc2" +# * action_if_greater +# Action to take if the version is strictly greater than +# "1.1.5" > "1.1.4rc2" +# "2.0" > "1.1.4rc2" +# +# See documentation on m4_version_compare and AS_VERSION_COMPARE for more +# precise definitions +# OPAL_CHECK_VERSION(prefix, version_actual, version_desired, +# action_if_less, action_if_equal, action_if_equal_series, +# action_if_greater) +# ---------------------------------------------------- +AC_DEFUN([OPAL_CHECK_VERSION],[ + version_actual=$2 + version_desired=$3 + + AC_MSG_CHECKING([Checking library version is $version_desired]) + # + # Example: If version_desired=1.1.4 and + # version_actual=1.1.3 -> -1 + # version_actual=1.1.4 -> 0 + # version_actual=1.1.4rc1 -> 1 + # version_actual=1.1.5 -> 1 (need further check) + # + AS_VERSION_COMPARE(["$version_actual"], [$version_desired], + [AC_MSG_RESULT([Earlier than expected ($version_actual < $$version_desired)]) + $1_version_cmp="less" + $4], + [AC_MSG_RESULT([Equal]) + $1_version_cmp="equal" + $5], + [ + # Need further check to make sure we are < 1.1.5 + # version_actual=1.1.4rc1 -> -1 + # version_actual=1.1.4 -> 0 (caught above) + # version_actual=1.1.5 -> 1 + AS_VERSION_COMPARE(["$version_actual"], [$version_desired"zzzz"], + [AC_MSG_RESULT([Within release series ($version_actual)]) + $1_version_cmp="series" + $6], + [AC_MSG_RESULT([Within release series ($version_actual)]) + $1_version_cmp="series" + $6], + [AC_MSG_RESULT([Later than expected ($version_actual > $$version_desired)]) + $1_version_cmp="greater" + $7] + )] + ) +])dnl diff --git a/config/opal_check_visibility.m4 b/config/opal_check_visibility.m4 new file mode 100644 index 00000000..bb909763 --- /dev/null +++ b/config/opal_check_visibility.m4 @@ -0,0 +1,90 @@ +# -*- shell-script -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2009-2011 Oracle and/or its affiliates. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# OPAL_CHECK_VISIBILITY +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_VISIBILITY],[ + AC_REQUIRE([AC_PROG_GREP]) + + # Check if the compiler has support for visibility, like some + # versions of gcc, icc Sun Studio cc. + AC_ARG_ENABLE(visibility, + AC_HELP_STRING([--enable-visibility], + [enable visibility feature of certain compilers/linkers (default: enabled)])) + + opal_visibility_define=0 + opal_msg="whether to enable symbol visibility" + + if test "$enable_visibility" = "no"; then + AC_MSG_CHECKING([$opal_msg]) + AC_MSG_RESULT([no (disabled)]) + else + CFLAGS_orig=$CFLAGS + + opal_add= + case "$opal_c_vendor" in + sun) + # Check using Sun Studio -xldscope=hidden flag + opal_add=-xldscope=hidden + CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $opal_add -errwarn=%all" + ;; + + *) + # Check using -fvisibility=hidden + opal_add=-fvisibility=hidden + CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $opal_add -Werror" + ;; + esac + + AC_MSG_CHECKING([if $CC supports $opal_add]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include + __attribute__((visibility("default"))) int foo; + ]],[[fprintf(stderr, "Hello, world\n");]])], + [AS_IF([test -s conftest.err], + [$GREP -iq visibility conftest.err + # If we find "visibility" in the stderr, then + # assume it doesn't work + AS_IF([test "$?" = "0"], [opal_add=])]) + ], [opal_add=]) + AS_IF([test "$opal_add" = ""], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([yes])]) + + CFLAGS=$CFLAGS_orig + OPAL_VISIBILITY_CFLAGS=$opal_add + + if test "$opal_add" != "" ; then + opal_visibility_define=1 + AC_MSG_CHECKING([$opal_msg]) + AC_MSG_RESULT([yes (via $opal_add)]) + elif test "$enable_visibility" = "yes"; then + AC_MSG_ERROR([Symbol visibility support requested but compiler does not seem to support it. Aborting]) + else + AC_MSG_CHECKING([$opal_msg]) + AC_MSG_RESULT([no (unsupported)]) + fi + unset opal_add + fi + + AC_DEFINE_UNQUOTED([OPAL_C_HAVE_VISIBILITY], [$opal_visibility_define], + [Whether C compiler supports symbol visibility or not]) +]) diff --git a/config/opal_check_withdir.m4 b/config/opal_check_withdir.m4 new file mode 100644 index 00000000..7c0ffa84 --- /dev/null +++ b/config/opal_check_withdir.m4 @@ -0,0 +1,38 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2006 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_CHECK_WITHDIR(with_option_name, dir_value, file_in_dir) +# ---------------------------------------------------- +AC_DEFUN([OPAL_CHECK_WITHDIR],[ + AC_MSG_CHECKING([--with-$1 value]) + AS_IF([test "$2" = "yes" || test "$2" = "no" || test "x$2" = "x"], + [AC_MSG_RESULT([simple ok (unspecified)])], + [AS_IF([test ! -d "$2"], + [AC_MSG_RESULT([not found]) + AC_MSG_WARN([Directory $2 not found]) + AC_MSG_ERROR([Cannot continue])], + [AS_IF([test "x`ls $2/$3 2> /dev/null`" = "x"], + [AC_MSG_RESULT([not found]) + AC_MSG_WARN([Expected file $2/$3 not found]) + AC_MSG_ERROR([Cannot continue])], + [AC_MSG_RESULT([sanity check ok ($2)])] + ) + ] + ) + ] + ) +])dnl diff --git a/config/opal_check_xpmem.m4 b/config/opal_check_xpmem.m4 new file mode 100644 index 00000000..aed13235 --- /dev/null +++ b/config/opal_check_xpmem.m4 @@ -0,0 +1,112 @@ +# -*- shell-script ; indent-tabs-mode:nil -*- +# +# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2011-2016 Los Alamos National Security, LLC. All rights +# reserved. +# Copyright (c) 2014 Intel, Inc. All rights reserved. +# Copyright (c) 2014-2015 Research Organization for Information Science +# and Technology (RIST). All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# +# special check for cray xpmem, uses macro(s) from pkg.m4 +# +# OPAL_CHECK_CRAY_XPMEM(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +AC_DEFUN([OPAL_CHECK_CRAY_XPMEM],[ + if test -z "$opal_check_cray_xpmem_happy" ; then + AC_ARG_WITH([cray_xpmem], + [AC_HELP_STRING([--with-cray-xpmem(=yes/no)], + [Build Cray XPMEM support(default: auto)])], + [], with_cray_xpmem=auto) + + AC_MSG_CHECKING([for Cray XPMEM support]) + AS_IF([test "$with_cray_xpmem" = "no"], + [AC_MSG_RESULT([no]) + $3], + [AS_IF([test "$with_cray_xpmem" = "auto" || test "$with_cray_xpmem" = "yes"], + [PKG_CHECK_MODULES_STATIC([CRAY_XPMEM], [cray-xpmem], + [opal_check_cray_xpmem_happy="yes"], + [opal_check_cray_xpmem_happy="no"] + [AS_IF([test "$with_cray_xpmem" = "yes"], + [AC_MSG_WARN([Cray XPMEM support requested but pkg-config failed.]) + AC_MSG_ERROR([Aborting])],[])] + )], + []) + ]) + + AS_IF([test "$opal_check_cray_xpmem_happy" = "yes" && test "$enable_static" = "yes"], + [CRAY_XPMEM_LIBS = $CRAY_XPMEM_STATIC_LIBS],[]) + fi + + AS_IF([test "$opal_check_cray_xpmem_happy" = "yes"], + [$1_LDFLAGS="[$]$1_LDFLAGS $CRAY_XPMEM_LIBS" + $1_CPPFLAGS="[$]$1_CPPFLAGS $CRAY_XPMEM_CFLAGS" + $1_LIBS="[$]$1_LIBS $CRAY_XPMEM_LIBS" + AC_DEFINE_UNQUOTED([HAVE_XPMEM_H], [1],[is xpmem.h available]) + $2], [$3]) +]) + +# OPAL_CHECK_XPMEM(prefix, [action-if-found], [action-if-not-found]) +# -------------------------------------------------------- +# check if XPMEM support can be found. sets prefix_{CPPFLAGS, +# LDFLAGS, LIBS} as needed and runs action-if-found if there is +# support, otherwise executes action-if-not-found +AC_DEFUN([OPAL_CHECK_XPMEM], [ + if test -z "$opal_check_xpmem_happy" ; then + # check for a cray installed xpmem first + OPAL_CHECK_CRAY_XPMEM([opal_check_xpmem],[opal_check_xpmem_happy=yes],[opal_check_xpmem_happy=no]) + + if test "$opal_check_xpmem_happy" = no ; then + AC_ARG_WITH([xpmem], + [AC_HELP_STRING([--with-xpmem(=DIR)], + [Build with XPMEM kernel module support, searching for headers in DIR])]) + OPAL_CHECK_WITHDIR([xpmem], [$with_xpmem], [include/xpmem.h]) + + AC_ARG_WITH([xpmem-libdir], + [AC_HELP_STRING([--with-xpmem-libdir=DIR], + [Search for XPMEM library in DIR])]) + OPAL_CHECK_WITHDIR([xpmem-libdir], [$with_xpmem_libdir], [libxpmem.*]) + + if test ! "$with_xpmem" = "no" ; then + if test ! -z "$with_xpmem" && test "$with_xpmem" != "yes" ; then + opal_check_xpmem_dir="$with_xpmem" + fi + + if test ! -z "$with_xpmem_libdir" && test "$with_xpmem_libdir" != "yes" ; then + opal_check_xpmem_libdir="$with_xpmem_libdir" + fi + + OPAL_CHECK_PACKAGE([opal_check_xpmem],[xpmem.h],[xpmem],[xpmem_make],[], + [$opal_check_xpmem_dir],[$opal_check_xpmem_libdir], [opal_check_xpmem_happy="yes"], []) + + if test "$opal_check_xpmem_happy" = "no" && test -n "$with_xpmem" && test "$with_xpmem" != "yes" ; then + AC_MSG_ERROR([XPMEM support requested but not found. Aborting]) + fi + fi + fi + + OPAL_SUMMARY_ADD([[Transports]],[[Shared memory/XPMEM]],[$1],[$opal_check_cray_xpmem_happy]) + fi + + AS_IF([test "$opal_check_xpmem_happy" = "yes"], [ + $1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_xpmem_CPPFLAGS" + $1_LDFLAGS="[$]$1_LDFLAGS $opal_check_xpmem_LDFLAGS" + $1_LIBS="[$]$1_LIBS $opal_check_xpmem_LIBS" + $2], [$3]) +])dnl diff --git a/config/opal_config_asm.m4 b/config/opal_config_asm.m4 new file mode 100644 index 00000000..3bdaa626 --- /dev/null +++ b/config/opal_config_asm.m4 @@ -0,0 +1,1305 @@ +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2015 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + + +AC_DEFUN([OPAL_CHECK_SYNC_BUILTIN_CSWAP_INT128], [ + + OPAL_VAR_SCOPE_PUSH([sync_bool_compare_and_swap_128_result CFLAGS_save]) + + AC_ARG_ENABLE([cross-cmpset128],[AC_HELP_STRING([--enable-cross-cmpset128], + [enable the use of the __sync builtin atomic compare-and-swap 128 when cross compiling])]) + + sync_bool_compare_and_swap_128_result=0 + + if test ! "$enable_cross_cmpset128" = "yes" ; then + AC_MSG_CHECKING([for processor support of __sync builtin atomic compare-and-swap on 128-bit values]) + + AC_RUN_IFELSE([AC_LANG_PROGRAM([], [__int128 x = 0; __sync_bool_compare_and_swap (&x, 0, 1);])], + [AC_MSG_RESULT([yes]) + sync_bool_compare_and_swap_128_result=1], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([no (cross compiling)])]) + + if test $sync_bool_compare_and_swap_128_result = 0 ; then + CFLAGS_save=$CFLAGS + CFLAGS="$CFLAGS -mcx16" + + AC_MSG_CHECKING([for __sync builtin atomic compare-and-swap on 128-bit values with -mcx16 flag]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([], [__int128 x = 0; __sync_bool_compare_and_swap (&x, 0, 1);])], + [AC_MSG_RESULT([yes]) + sync_bool_compare_and_swap_128_result=1 + CFLAGS_save="$CFLAGS"], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([no (cross compiling)])]) + + CFLAGS=$CFLAGS_save + fi + else + AC_MSG_CHECKING([for compiler support of __sync builtin atomic compare-and-swap on 128-bit values]) + + # Check if the compiler supports the __sync builtin + AC_TRY_LINK([], [__int128 x = 0; __sync_bool_compare_and_swap (&x, 0, 1);], + [AC_MSG_RESULT([yes]) + sync_bool_compare_and_swap_128_result=1], + [AC_MSG_RESULT([no])]) + + if test $sync_bool_compare_and_swap_128_result = 0 ; then + CFLAGS_save=$CFLAGS + CFLAGS="$CFLAGS -mcx16" + + AC_MSG_CHECKING([for __sync builtin atomic compare-and-swap on 128-bit values with -mcx16 flag]) + AC_TRY_LINK([], [__int128 x = 0; __sync_bool_compare_and_swap (&x, 0, 1);], + [AC_MSG_RESULT([yes]) + sync_bool_compare_and_swap_128_result=1 + CFLAGS_save="$CFLAGS"], + [AC_MSG_RESULT([no])]) + + CFLAGS=$CFLAGS_save + fi + fi + + AC_DEFINE_UNQUOTED([OPAL_HAVE_SYNC_BUILTIN_CSWAP_INT128], [$sync_bool_compare_and_swap_128_result], + [Whether the __sync builtin atomic compare and swap supports 128-bit values]) + + OPAL_VAR_SCOPE_POP +]) + +AC_DEFUN([OPAL_CHECK_SYNC_BUILTINS], [ + AC_MSG_CHECKING([for __sync builtin atomics]) + + AC_TRY_LINK([long tmp;], [__sync_synchronize(); +__sync_bool_compare_and_swap(&tmp, 0, 1); +__sync_add_and_fetch(&tmp, 1);], + [AC_MSG_RESULT([yes]) + $1], + [AC_MSG_RESULT([no]) + $2]) + + AC_MSG_CHECKING([for 64-bit __sync builtin atomics]) + + AC_TRY_LINK([ +#include +uint64_t tmp;], [ +__sync_bool_compare_and_swap(&tmp, 0, 1); +__sync_add_and_fetch(&tmp, 1);], + [AC_MSG_RESULT([yes]) + opal_asm_sync_have_64bit=1], + [AC_MSG_RESULT([no]) + opal_asm_sync_have_64bit=0]) + + AC_DEFINE_UNQUOTED([OPAL_ASM_SYNC_HAVE_64BIT],[$opal_asm_sync_have_64bit], + [Whether 64-bit is supported by the __sync builtin atomics]) + + # Check for 128-bit support + OPAL_CHECK_SYNC_BUILTIN_CSWAP_INT128 +]) + + +AC_DEFUN([OPAL_CHECK_GCC_BUILTIN_CSWAP_INT128], [ + + OPAL_VAR_SCOPE_PUSH([atomic_compare_exchange_n_128_result CFLAGS_save]) + + AC_ARG_ENABLE([cross-cmpset128],[AC_HELP_STRING([--enable-cross-cmpset128], + [enable the use of the __sync builtin atomic compare-and-swap 128 when cross compiling])]) + + atomic_compare_exchange_n_128_result=0 + + if test ! "$enable_cross_cmpset128" = "yes" ; then + AC_MSG_CHECKING([for processor support of __atomic builtin atomic compare-and-swap on 128-bit values]) + + AC_RUN_IFELSE([AC_LANG_PROGRAM([], [__int128 x = 0, y = 0; __atomic_compare_exchange_n (&x, &y, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);])], + [AC_MSG_RESULT([yes]) + atomic_compare_exchange_n_128_result=1], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([no (cross compiling)])]) + + if test $atomic_compare_exchange_n_128_result = 0 ; then + CFLAGS_save=$CFLAGS + CFLAGS="$CFLAGS -mcx16" + + AC_MSG_CHECKING([for __atomic builtin atomic compare-and-swap on 128-bit values with -mcx16 flag]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([], [__int128 x = 0, y = 0; __atomic_compare_exchange_n (&x, &y, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);])], + [AC_MSG_RESULT([yes]) + atomic_compare_exchange_n_128_result=1 + CFLAGS_save="$CFLAGS"], + [AC_MSG_RESULT([no])], + [AC_MSG_RESULT([no (cross compiling)])]) + + CFLAGS=$CFLAGS_save + fi + + if test $atomic_compare_exchange_n_128_result = 1 ; then + AC_MSG_CHECKING([if __int128 atomic compare-and-swap is always lock-free]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([], [if (!__atomic_always_lock_free(16, 0)) { return 1; }])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + OPAL_CHECK_SYNC_BUILTIN_CSWAP_INT128 + atomic_compare_exchange_n_128_result=0], + [AC_MSG_RESULT([no (cross compiling)])]) + fi + else + AC_MSG_CHECKING([for compiler support of __atomic builtin atomic compare-and-swap on 128-bit values]) + + # Check if the compiler supports the __atomic builtin + AC_TRY_LINK([], [__int128 x = 0, y = 0; __atomic_compare_exchange_n (&x, &y, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);], + [AC_MSG_RESULT([yes]) + atomic_compare_exchange_n_128_result=1], + [AC_MSG_RESULT([no])]) + + if test $atomic_compare_exchange_n_128_result = 0 ; then + CFLAGS_save=$CFLAGS + CFLAGS="$CFLAGS -mcx16" + + AC_MSG_CHECKING([for __atomic builtin atomic compare-and-swap on 128-bit values with -mcx16 flag]) + AC_TRY_LINK([], [__int128 x = 0, y = 0; __atomic_compare_exchange_n (&x, &y, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);], + [AC_MSG_RESULT([yes]) + atomic_compare_exchange_n_128_result=1 + CFLAGS_save="$CFLAGS"], + [AC_MSG_RESULT([no])]) + + CFLAGS=$CFLAGS_save + fi + fi + + AC_DEFINE_UNQUOTED([OPAL_HAVE_GCC_BUILTIN_CSWAP_INT128], [$atomic_compare_exchange_n_128_result], + [Whether the __atomic builtin atomic compare and swap is lock-free on 128-bit values]) + + OPAL_VAR_SCOPE_POP +]) + +AC_DEFUN([OPAL_CHECK_GCC_ATOMIC_BUILTINS], [ + AC_MSG_CHECKING([for __atomic builtin atomics]) + + AC_TRY_LINK([long tmp, old = 0;], [__atomic_thread_fence(__ATOMIC_SEQ_CST); +__atomic_compare_exchange_n(&tmp, &old, 1, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); +__atomic_add_fetch(&tmp, 1, __ATOMIC_RELAXED);], + [AC_MSG_RESULT([yes]) + $1], + [AC_MSG_RESULT([no]) + $2]) + + # Check for 128-bit support + OPAL_CHECK_GCC_BUILTIN_CSWAP_INT128 +]) + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_TEXT +dnl +dnl Determine how to set current mode as text. +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_TEXT],[ + AC_MSG_CHECKING([directive for setting text section]) + opal_cv_asm_text="" + if test "$opal_cv_c_compiler_vendor" = "microsoft" ; then + # text section will be brought in with the rest of + # header for MS - leave blank for now + opal_cv_asm_text="" + else + case $host in + *-aix*) + opal_cv_asm_text=[".csect .text[PR]"] + ;; + *) + opal_cv_asm_text=".text" + ;; + esac + fi + AC_MSG_RESULT([$opal_cv_asm_text]) + AC_DEFINE_UNQUOTED([OPAL_ASM_TEXT], ["$opal_cv_asm_text"], + [Assembly directive for setting text section]) + OPAL_ASM_TEXT="$opal_cv_asm_text" + AC_SUBST(OPAL_ASM_TEXT) +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_GLOBAL +dnl +dnl Sets OPAL_ASM_GLOBAL to the value to prefix global values +dnl +dnl I'm sure if I don't have a test for this, there will be some +dnl dumb platform that uses something else +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_GLOBAL],[ + AC_MSG_CHECKING([directive for exporting symbols]) + opal_cv_asm_global="" + if test "$opal_cv_c_compiler_vendor" = "microsoft" ; then + opal_cv_asm_global="PUBLIC" + else + case $host in + *) + opal_cv_asm_global=".globl" + ;; + esac + fi + AC_MSG_RESULT([$opal_cv_asm_global]) + AC_DEFINE_UNQUOTED([OPAL_ASM_GLOBAL], ["$opal_cv_asm_global"], + [Assembly directive for exporting symbols]) + OPAL_ASM_GLOBAL="$opal_cv_asm_global" + AC_SUBST(OPAL_AS_GLOBAL) +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_LSYM +dnl +dnl Sets OPAL_ASM_LSYM to the prefix value on a symbol to make it +dnl an internal label (jump target and whatnot) +dnl +dnl We look for L .L $ L$ (in that order) for something that both +dnl assembles and does not leave a label in the output of nm. Fall +dnl back to L if nothing else seems to work :/ +dnl +dnl ################################################################# + +# _OPAL_CHECK_ASM_LSYM([variable-to-set]) +# --------------------------------------- +AC_DEFUN([_OPAL_CHECK_ASM_LSYM],[ + AC_REQUIRE([AC_PROG_GREP]) + + $1="L" + + for sym in L .L $ L$ ; do + asm_result=0 + echo "configure: trying $sym" >&AC_FD_CC + OPAL_TRY_ASSEMBLE([foobar$opal_cv_asm_label_suffix +${sym}mytestlabel$opal_cv_asm_label_suffix], + [# ok, we succeeded at assembling. see if we can nm, + # throwing the results in a file + if $NM conftest.$OBJEXT > conftest.out 2>&AC_FD_CC ; then + if test "`$GREP mytestlabel conftest.out`" = "" ; then + # there was no symbol... looks promising to me + $1="$sym" + asm_result=1 + elif test ["`$GREP ' [Nt] .*mytestlabel' conftest.out`"] = "" ; then + # see if we have a non-global-ish symbol + # but we should see if we can do better. + $1="$sym" + fi + else + # not so much on the NM goodness :/ + echo "$NM failed. Output from NM was:" >&AC_FD_CC + cat conftest.out >&AC_FD_CC + AC_MSG_WARN([$NM could not read object file]) + fi + ]) + if test "$asm_result" = "1" ; then + break + fi + done + rm -f conftest.out + unset asm_result sym +]) + +# OPAL_CHECK_ASM_LSYM() +# --------------------- +AC_DEFUN([OPAL_CHECK_ASM_LSYM],[ + AC_REQUIRE([AC_PROG_NM]) + + AC_CACHE_CHECK([prefix for lsym labels], + [opal_cv_asm_lsym], + [_OPAL_CHECK_ASM_LSYM([opal_cv_asm_lsym])]) + AC_DEFINE_UNQUOTED([OPAL_ASM_LSYM], ["$opal_cv_asm_lsym"], + [Assembly prefix for lsym labels]) + OPAL_ASM_LSYM="$opal_cv_asm_lsym" + AC_SUBST(OPAL_ASM_LSYM) +])dnl + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_PROC +dnl +dnl Sets a cv-flag, if the compiler needs a proc/endp-definition to +dnl link with C. +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_PROC],[ + AC_CACHE_CHECK([if .proc/endp is needed], + [opal_cv_asm_need_proc], + [opal_cv_asm_need_proc="no" + OPAL_TRY_ASSEMBLE([ + .proc mysym +mysym: + .endp mysym], + [opal_cv_asm_need_proc="yes"]) + rm -f conftest.out]) + + if test "$opal_cv_asm_need_proc" = "yes" ; then + opal_cv_asm_proc=".proc" + opal_cv_asm_endproc=".endp" + else + opal_cv_asm_proc="#" + opal_cv_asm_endproc="#" + fi +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_GSYM +dnl +dnl Sets OPAL_ASM_GSYM to the prefix value on a symbol to make it +dnl a global linkable from C. Basically, an _ or not. +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_GSYM],[ + AC_CACHE_CHECK([prefix for global symbol labels], + [opal_cv_asm_gsym], + [_OPAL_CHECK_ASM_GSYM]) + + if test "$opal_cv_asm_gsym" = "none" ; then + AC_MSG_ERROR([Could not determine global symbol label prefix]) + fi + + AC_DEFINE_UNQUOTED([OPAL_ASM_GSYM], ["$opal_cv_asm_gsym"], + [Assembly prefix for gsym labels]) + OPAL_ASM_GSYM="$opal_cv_asm_gsym" + AC_SUBST(OPAL_ASM_GSYM) + +]) + +AC_DEFUN([_OPAL_CHECK_ASM_GSYM],[ + opal_cv_asm_gsym="none" + + for sym in "_" "" "." ; do + asm_result=0 + echo "configure: trying $sym" >&AC_FD_CC +cat > conftest_c.c <&AC_FD_CC + opal_link="$CC $CFLAGS conftest_c.$OBJEXT conftest.$OBJEXT -o conftest $LDFLAGS $LIBS > conftest.link 2>&1" + if AC_TRY_EVAL(opal_link) ; then + # save the warnings + cat conftest.link >&AC_FD_CC + asm_result=1 + else + cat conftest.link >&AC_FD_CC + echo "configure: failed C program was: " >&AC_FD_CC + cat conftest_c.c >&AC_FD_CC + echo "configure: failed ASM program was: " >&AC_FD_CC + cat conftest.s >&AC_FD_CC + asm_result=0 + fi + else + # save output and failed program + cat conftest.cmpl >&AC_FD_CC + echo "configure: failed C program was: " >&AC_FD_CC + cat conftest.c >&AC_FD_CC + asm_result=0 + fi], + [asm_result=0]) + if test "$asm_result" = "1" ; then + opal_cv_asm_gsym="$sym" + break + fi + done + rm -rf conftest.* +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_LABEL_SUFFIX +dnl +dnl Sets OPAL_ASM_LABEL_SUFFIX to the value to suffix for labels +dnl +dnl I'm sure if I don't have a test for this, there will be some +dnl dumb platform that uses something else +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_LABEL_SUFFIX],[ + AC_MSG_CHECKING([suffix for labels]) + opal_cv_asm_label_suffix="" + case $host in + *) + opal_cv_asm_label_suffix=":" + ;; + esac + AC_MSG_RESULT([$opal_cv_asm_label_suffix]) + AC_DEFINE_UNQUOTED([OPAL_ASM_LABEL_SUFFIX], ["$opal_cv_asm_label_suffix"], + [Assembly suffix for labels]) + OPAL_ASM_LABEL_SUFFIX="$opal_cv_asm_label_suffix" + AC_SUBST(OPAL_AS_LABEL_SUFFIX) +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_ALIGN_LOG +dnl +dnl Sets OPAL_ASM_ALIGN_LOG to 1 if align is specified +dnl logarithmically, 0 otherwise +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_ALIGN_LOG],[ + AC_REQUIRE([AC_PROG_NM]) + AC_REQUIRE([AC_PROG_GREP]) + + AC_CACHE_CHECK([if .align directive takes logarithmic value], + [opal_cv_asm_align_log], + [ OPAL_TRY_ASSEMBLE([ $opal_cv_asm_text + .align 4 + $opal_cv_asm_global foo + .byte 1 + .align 4 +foo$opal_cv_asm_label_suffix + .byte 2], + [opal_asm_addr=[`$NM conftest.$OBJEXT | $GREP foo | sed -e 's/.*\([0-9a-fA-F][0-9a-fA-F]\).*foo.*/\1/'`]], + [opal_asm_addr=""]) + # test for both 16 and 10 (decimal and hex notations) + echo "configure: .align test address offset is $opal_asm_addr" >&AC_FD_CC + if test "$opal_asm_addr" = "16" || test "$opal_asm_addr" = "10" ; then + opal_cv_asm_align_log="yes" + else + opal_cv_asm_align_log="no" + fi]) + + if test "$opal_cv_asm_align_log" = "yes" || test "$opal_cv_asm_align_log" = "1" ; then + opal_asm_align_log_result=1 + else + opal_asm_align_log_result=0 + fi + + AC_DEFINE_UNQUOTED([OPAL_ASM_ALIGN_LOG], + [$asm_align_log_result], + [Assembly align directive expects logarithmic value]) + + unset omp_asm_addr asm_result +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_TYPE +dnl +dnl Sets OPAL_ASM_TYPE to the prefix for the function type to +dnl set a symbol's type as function (needed on ELF for shared +dnl libaries). If no .type directive is needed, sets OPAL_ASM_TYPE +dnl to an empty string +dnl +dnl We look for @ \# % +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_TYPE],[ + AC_CACHE_CHECK([prefix for function in .type], + [opal_cv_asm_type], + [_OPAL_CHECK_ASM_TYPE]) + + AC_DEFINE_UNQUOTED([OPAL_ASM_TYPE], ["$opal_cv_asm_type"], + [How to set function type in .type directive]) + OPAL_ASM_TYPE="$opal_cv_asm_type" + AC_SUBST(OPAL_ASM_TYPE) +]) + +AC_DEFUN([_OPAL_CHECK_ASM_TYPE],[ + opal_cv_asm_type="" + + case "${host}" in + *-sun-solaris*) + # GCC on solaris seems to accept just about anything, not + # that what it defines actually works... So just hardwire + # to the right answer + opal_cv_asm_type="#" + ;; + *) + for type in @ \# % ; do + asm_result=0 + echo "configure: trying $type" >&AC_FD_CC + OPAL_TRY_ASSEMBLE([ .type mysym, ${type}function +mysym:], + [opal_cv_asm_type="${type}" + asm_result=1]) + if test "$asm_result" = "1" ; then + break + fi + done + ;; + esac + rm -f conftest.out + + unset asm_result type +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_ASM_SIZE +dnl +dnl Sets OPAL_ASM_SIZE to 1 if we should set .size directives for +dnl each function, 0 otherwise. +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_ASM_SIZE],[ + AC_CACHE_CHECK([if .size is needed], + [opal_cv_asm_need_size], + [opal_cv_asm_need_size="no" + OPAL_TRY_ASSEMBLE([ .size mysym, 1], + [opal_cv_asm_need_size="yes"]) + rm -f conftest.out]) + + if test "$opal_cv_asm_need_size" = "yes" ; then + opal_asm_size=1 + else + opal_asm_size=0 + fi + + AC_DEFINE_UNQUOTED([OPAL_ASM_SIZE], ["$opal_asm_size"], + [Do we need to give a .size directive]) + OPAL_ASM_SIZE="$opal_asm_size" + AC_SUBST(OPAL_ASM_TYPE) + unset asm_result +])dnl + + +# OPAL_CHECK_ASM_GNU_STACKEXEC(var) +# ---------------------------------- +# sets shell variable var to the things necessary to +# disable execable stacks with GAS +AC_DEFUN([OPAL_CHECK_ASM_GNU_STACKEXEC], [ + AC_REQUIRE([AC_PROG_GREP]) + + AC_CHECK_PROG([OBJDUMP], [objdump], [objdump]) + AC_CACHE_CHECK([if .note.GNU-stack is needed], + [opal_cv_asm_gnu_stack_result], + [AS_IF([test "$OBJDUMP" != ""], + [ # first, see if a simple C program has it set + cat >conftest.c < /dev/null && opal_cv_asm_gnu_stack_result=yes], + [OPAL_LOG_MSG([the failed program was:], 1) + OPAL_LOG_FILE([conftest.c]) + opal_cv_asm_gnu_stack_result=no]) + if test "$opal_cv_asm_gnu_stack_result" != "yes" ; then + opal_cv_asm_gnu_stack_result="no" + fi + rm -rf conftest.*], + [opal_cv_asm_gnu_stack_result="no"])]) + if test "$opal_cv_asm_gnu_stack_result" = "yes" ; then + opal_cv_asm_gnu_stack=1 + else + opal_cv_asm_gnu_stack=0 + fi +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_POWERPC_REG +dnl +dnl See if the notation for specifying registers is X (most everyone) +dnl or rX (OS X) +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_POWERPC_REG],[ + AC_MSG_CHECKING([if PowerPC registers have r prefix]) + OPAL_TRY_ASSEMBLE([$opal_cv_asm_text + addi 1,1,0], + [opal_cv_asm_powerpc_r_reg=0], + [OPAL_TRY_ASSEMBLE([$opal_cv_asm_text + addi r1,r1,0], + [opal_cv_asm_powerpc_r_reg=1], + [AC_MSG_ERROR([Can not determine how to use PPC registers])])]) + if test "$opal_cv_asm_powerpc_r_reg" = "1" ; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_DEFINE_UNQUOTED([OPAL_POWERPC_R_REGISTERS], + [$opal_cv_asm_powerpc_r_reg], + [Whether r notation is used for ppc registers]) +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_POWERPC_64BIT +dnl +dnl On some powerpc chips (the PPC970 or G5), the OS usually runs in +dnl 32 bit mode, even though the hardware can do 64bit things. If +dnl the compiler will let us, emit code for 64bit test and set type +dnl operations (on a long long). +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_POWERPC_64BIT],[ + if test "$ac_cv_sizeof_long" != "4" ; then + # this function should only be called in the 32 bit case + AC_MSG_ERROR([CHECK_POWERPC_64BIT called on 64 bit platform. Internal error.]) + fi + AC_MSG_CHECKING([for 64-bit PowerPC assembly support]) + case $host in + *-darwin*) + ppc64_result=0 + if test "$opal_cv_asm_powerpc_r_reg" = "1" ; then + ldarx_asm=" ldarx r1,r1,r1"; + else + ldarx_asm=" ldarx 1,1,1"; + fi + OPAL_TRY_ASSEMBLE([$opal_cv_asm_text + $ldarx_asm], + [ppc64_result=1], + [ppc64_result=0]) + ;; + *) + ppc64_result=0 + ;; + esac + + if test "$ppc64_result" = "1" ; then + AC_MSG_RESULT([yes]) + ifelse([$1],,:,[$1]) + else + AC_MSG_RESULT([no]) + ifelse([$2],,:,[$2]) + fi + + unset ppc64_result ldarx_asm +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_SPARCV8PLUS +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_SPARCV8PLUS],[ + AC_MSG_CHECKING([if have Sparc v8+/v9 support]) + sparc_result=0 + OPAL_TRY_ASSEMBLE([$opal_cv_asm_text + casa [%o0] 0x80, %o1, %o2], + [sparc_result=1], + [sparc_result=0]) + if test "$sparc_result" = "1" ; then + AC_MSG_RESULT([yes]) + ifelse([$1],,:,[$1]) + else + AC_MSG_RESULT([no]) + ifelse([$2],,:,[$2]) + fi + + unset sparc_result +])dnl + +dnl ################################################################# +dnl +dnl OPAL_CHECK_CMPXCHG16B +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_CMPXCHG16B],[ + OPAL_VAR_SCOPE_PUSH([cmpxchg16b_result]) + + AC_ARG_ENABLE([cross-cmpxchg16b],[AC_HELP_STRING([--enable-cross-cmpxchg16b], + [enable the use of the cmpxchg16b instruction when cross compiling])]) + + if test ! "$enable_cross_cmpxchg16b" = "yes" ; then + AC_MSG_CHECKING([if processor supports x86_64 16-byte compare-and-exchange]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([[unsigned char tmp[16];]],[[ + __asm__ __volatile__ ("lock cmpxchg16b (%%rsi)" : : "S" (tmp) : "memory", "cc");]])], + [AC_MSG_RESULT([yes]) + cmpxchg16b_result=1], + [AC_MSG_RESULT([no]) + cmpxchg16b_result=0], + [AC_MSG_RESULT([no (cross-compiling)]) + cmpxchg16b_result=0]) + else + AC_MSG_CHECKING([if assembler supports x86_64 16-byte compare-and-exchange]) + + OPAL_TRY_ASSEMBLE([$opal_cv_asm_text + cmpxchg16b 0], + [AC_MSG_RESULT([yes]) + cmpxchg16b_result=1], + [AC_MSG_RESULT([no]) + cmpxchg16b_result=0]) + fi + if test "$cmpxchg16b_result" = 1; then + AC_MSG_CHECKING([if compiler correctly handles volatile 128bits]) + AC_RUN_IFELSE([AC_LANG_PROGRAM([#include +#include + +union opal_counted_pointer_t { + struct { + uint64_t counter; + uint64_t item; + } data; +#if defined(HAVE___INT128) && HAVE___INT128 + __int128 value; +#elif defined(HAVE_INT128_T) && HAVE_INT128_T + int128_t value; +#endif +}; +typedef union opal_counted_pointer_t opal_counted_pointer_t;], + [volatile opal_counted_pointer_t a; + opal_counted_pointer_t b; + + a.data.counter = 0; + a.data.item = 0x1234567890ABCDEF; + + b.data.counter = a.data.counter; + b.data.item = a.data.item; + + /* bozo checks */ + assert(16 == sizeof(opal_counted_pointer_t)); + assert(a.data.counter == b.data.counter); + assert(a.data.item == b.data.item); + /* + * the following test fails on buggy compilers + * so far, with icc -o conftest conftest.c + * - intel icc 14.0.0.080 (aka 2013sp1) + * - intel icc 14.0.1.106 (aka 2013sp1u1) + * older and more recents compilers work fine + * buggy compilers work also fine but only with -O0 + */ +#if (defined(HAVE___INT128) && HAVE___INT128) || (defined(HAVE_INT128_T) && HAVE_INT128_T) + return (a.value != b.value); +#else + return 0; +#endif])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + cmpxchg16b_result=0], + [AC_MSG_RESULT([untested, assuming ok])]) + fi + AC_DEFINE_UNQUOTED([OPAL_HAVE_CMPXCHG16B], [$cmpxchg16b_result], + [Whether the processor supports the cmpxchg16b instruction]) + OPAL_VAR_SCOPE_POP +])dnl + +dnl ################################################################# +dnl +dnl OPAL_CHECK_INLINE_GCC +dnl +dnl Check if the compiler is capable of doing GCC-style inline +dnl assembly. Some compilers emit a warning and ignore the inline +dnl assembly (xlc on OS X) and compile without error. Therefore, +dnl the test attempts to run the emited code to check that the +dnl assembly is actually run. To run this test, one argument to +dnl the macro must be an assembly instruction in gcc format to move +dnl the value 0 into the register containing the variable ret. +dnl For PowerPC, this would be: +dnl +dnl "li %0,0" : "=&r"(ret) +dnl +dnl For testing ia32 assembly, the assembly instruction xaddl is +dnl tested. The xaddl instruction is used by some of the atomic +dnl implementations so it makes sense to test for it. In addition, +dnl some compilers (i.e. earlier versions of Sun Studio 12) do not +dnl necessarily handle xaddl properly, so that needs to be detected +dnl during configure time. +dnl +dnl DEFINE OPAL_GCC_INLINE_ASSEMBLY to 0 or 1 depending on GCC +dnl support +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_INLINE_C_GCC],[ + assembly="$1" + asm_result="unknown" + + AC_MSG_CHECKING([if $CC supports GCC inline assembly]) + + if test ! "$assembly" = "" ; then + AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ +int ret = 1; +int negone = -1; +__asm__ __volatile__ ($assembly); +return ret; + ]])], + [asm_result="yes"], [asm_result="no"], + [asm_result="unknown"]) + else + assembly="test skipped - assuming no" + fi + + # if we're cross compiling, just try to compile and figure good enough + if test "$asm_result" = "unknown" ; then + AC_LINK_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ +int ret = 1; +int negone = -1; +__asm__ __volatile__ ($assembly); +return ret; + ]])], + [asm_result="yes"], [asm_result="no"]) + fi + + AC_MSG_RESULT([$asm_result]) + + if test "$asm_result" = "yes" ; then + OPAL_C_GCC_INLINE_ASSEMBLY=1 + else + OPAL_C_GCC_INLINE_ASSEMBLY=0 + fi + + AC_DEFINE_UNQUOTED([OPAL_C_GCC_INLINE_ASSEMBLY], + [$OPAL_C_GCC_INLINE_ASSEMBLY], + [Whether C compiler supports GCC style inline assembly]) + + unset OPAL_C_GCC_INLINE_ASSEMBLY assembly asm_result +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_INLINE_DEC +dnl +dnl DEFINE OPAL_DEC to 0 or 1 depending on DEC +dnl support +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_INLINE_C_DEC],[ + + AC_MSG_CHECKING([if $CC supports DEC inline assembly]) + + AC_LINK_IFELSE([AC_LANG_PROGRAM([ +AC_INCLUDES_DEFAULT +#include ], +[[asm(""); +return 0;]])], + [asm_result="yes"], [asm_result="no"]) + + AC_MSG_RESULT([$asm_result]) + + if test "$asm_result" = "yes" ; then + OPAL_C_DEC_INLINE_ASSEMBLY=1 + else + OPAL_C_DEC_INLINE_ASSEMBLY=0 + fi + + AC_DEFINE_UNQUOTED([OPAL_C_DEC_INLINE_ASSEMBLY], + [$OPAL_C_DEC_INLINE_ASSEMBLY], + [Whether C compiler supports DEC style inline assembly]) + + unset OPAL_C_DEC_INLINE_ASSEMBLY asm_result +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CHECK_INLINE_XLC +dnl +dnl DEFINE OPAL_XLC to 0 or 1 depending on XLC +dnl support +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CHECK_INLINE_C_XLC],[ + + AC_MSG_CHECKING([if $CC supports XLC inline assembly]) + + OPAL_C_XLC_INLINE_ASSEMBLY=0 + asm_result="no" + if test "$CC" = "xlc" ; then + OPAL_XLC_INLINE_ASSEMBLY=1 + asm_result="yes" + fi + + AC_MSG_RESULT([$asm_result]) + AC_DEFINE_UNQUOTED([OPAL_C_XLC_INLINE_ASSEMBLY], + [$OPAL_C_XLC_INLINE_ASSEMBLY], + [Whether C compiler supports XLC style inline assembly]) + + unset OPAL_C_XLC_INLINE_ASSEMBLY +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_CONFIG_ASM +dnl +dnl DEFINE OPAL_ASSEMBLY_ARCH to something in sys/architecture.h +dnl DEFINE OPAL_ASSEMBLY_FORMAT to string containing correct +dnl format for assembly (not user friendly) +dnl SUBST OPAL_ASSEMBLY_FORMAT to string containing correct +dnl format for assembly (not user friendly) +dnl +dnl ################################################################# +AC_DEFUN([OPAL_CONFIG_ASM],[ + AC_REQUIRE([OPAL_SETUP_CC]) + AC_REQUIRE([AM_PROG_AS]) + + AC_ARG_ENABLE([builtin-atomics], + [AC_HELP_STRING([--enable-builtin-atomics], + [Enable use of __sync builtin atomics (default: enabled)])], + [], [enable_builtin_atomics="yes"]) + AC_ARG_ENABLE([osx-builtin-atomics], + [AC_HELP_STRING([--enable-osx-builtin-atomics], + [Enable use of OSX builtin atomics (default: enabled)])], + [], [enable_osx_builtin_atomics="yes"]) + + opal_cv_asm_builtin="BUILTIN_NO" + if test "$opal_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes" ; then + OPAL_CHECK_GCC_ATOMIC_BUILTINS([opal_cv_asm_builtin="BUILTIN_GCC"], []) + fi + if test "$opal_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_builtin_atomics" = "yes" ; then + OPAL_CHECK_SYNC_BUILTINS([opal_cv_asm_builtin="BUILTIN_SYNC"], []) + fi + if test "$opal_cv_asm_builtin" = "BUILTIN_NO" && test "$enable_osx_builtin_atomics" = "yes" ; then + AC_CHECK_HEADER([libkern/OSAtomic.h], + [opal_cv_asm_builtin="BUILTIN_OSX"]) + fi + + OPAL_CHECK_ASM_PROC + OPAL_CHECK_ASM_TEXT + OPAL_CHECK_ASM_GLOBAL + OPAL_CHECK_ASM_GNU_STACKEXEC + OPAL_CHECK_ASM_LABEL_SUFFIX + OPAL_CHECK_ASM_GSYM + OPAL_CHECK_ASM_LSYM + OPAL_CHECK_ASM_TYPE + OPAL_CHECK_ASM_SIZE + OPAL_CHECK_ASM_ALIGN_LOG + + # find our architecture for purposes of assembly stuff + opal_cv_asm_arch="UNSUPPORTED" + OPAL_GCC_INLINE_ASSIGN="" + OPAL_ASM_SUPPORT_64BIT=0 + case "${host}" in + i?86-*|x86_64*) + if test "$ac_cv_sizeof_long" = "4" ; then + opal_cv_asm_arch="IA32" + else + opal_cv_asm_arch="AMD64" + fi + OPAL_ASM_SUPPORT_64BIT=1 + OPAL_GCC_INLINE_ASSIGN='"xaddl %1,%0" : "=m"(ret), "+r"(negone) : "m"(ret)' + OPAL_CHECK_CMPXCHG16B + ;; + + ia64-*) + opal_cv_asm_arch="IA64" + OPAL_ASM_SUPPORT_64BIT=1 + OPAL_GCC_INLINE_ASSIGN='"mov %0=r0\n;;\n" : "=&r"(ret)' + ;; + aarch64*) + opal_cv_asm_arch="ARM64" + OPAL_ASM_SUPPORT_64BIT=1 + OPAL_ASM_ARM_VERSION=8 + AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION], + [What ARM assembly version to use]) + OPAL_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + + armv7*) + opal_cv_asm_arch="ARM" + OPAL_ASM_SUPPORT_64BIT=1 + OPAL_ASM_ARM_VERSION=7 + AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION], + [What ARM assembly version to use]) + OPAL_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + + armv6*) + opal_cv_asm_arch="ARM" + OPAL_ASM_SUPPORT_64BIT=0 + OPAL_ASM_ARM_VERSION=6 + CCASFLAGS="$CCASFLAGS -march=armv7-a" + AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION], + [What ARM assembly version to use]) + OPAL_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + + armv5*linux*|armv4*linux*) + # uses Linux kernel helpers for some atomic operations + opal_cv_asm_arch="ARM" + OPAL_ASM_SUPPORT_64BIT=0 + OPAL_ASM_ARM_VERSION=5 + CCASFLAGS="$CCASFLAGS -march=armv7-a" + AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION], + [What ARM assembly version to use]) + OPAL_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)' + ;; + + mips-*|mips64*) + # Should really find some way to make sure that we are on + # a MIPS III machine (r4000 and later) + opal_cv_asm_arch="MIPS" + OPAL_ASM_SUPPORT_64BIT=1 + OPAL_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)' + ;; + + powerpc-*|powerpc64-*|powerpcle-*|powerpc64le-*|rs6000-*|ppc-*) + OPAL_CHECK_POWERPC_REG + if test "$ac_cv_sizeof_long" = "4" ; then + opal_cv_asm_arch="POWERPC32" + + # Note that on some platforms (Apple G5), even if we are + # compiling in 32 bit mode (and therefore should assume + # sizeof(long) == 4), we can use the 64 bit test and set + # operations. + OPAL_CHECK_POWERPC_64BIT(OPAL_ASM_SUPPORT_64BIT=1) + elif test "$ac_cv_sizeof_long" = "8" ; then + OPAL_ASM_SUPPORT_64BIT=1 + opal_cv_asm_arch="POWERPC64" + else + AC_MSG_ERROR([Could not determine PowerPC word size: $ac_cv_sizeof_long]) + fi + OPAL_GCC_INLINE_ASSIGN='"1: li %0,0" : "=&r"(ret)' + ;; + + sparc*-*) + # SPARC v9 (and above) are the only ones with 64bit support + # if compiling 32 bit, see if we are v9 (aka v8plus) or + # earlier (casa is v8+/v9). + if test "$ac_cv_sizeof_long" = "4" ; then + have_v8plus=0 + OPAL_CHECK_SPARCV8PLUS([have_v8plus=1]) + if test "$have_v8plus" = "0" ; then + OPAL_ASM_SUPPORT_64BIT=0 + opal_cv_asm_arch="SPARC" +AC_MSG_WARN([Sparc v8 target is not supported in this release of Open MPI.]) +AC_MSG_WARN([You must specify the target architecture v8plus to compile]) +AC_MSG_WARN([Open MPI in 32 bit mode on Sparc processors (see the README).]) +AC_MSG_ERROR([Can not continue.]) + else + OPAL_ASM_SUPPORT_64BIT=1 + opal_cv_asm_arch="SPARCV9_32" + fi + + elif test "$ac_cv_sizeof_long" = "8" ; then + OPAL_ASM_SUPPORT_64BIT=1 + opal_cv_asm_arch="SPARCV9_64" + else + AC_MSG_ERROR([Could not determine Sparc word size: $ac_cv_sizeof_long]) + fi + OPAL_GCC_INLINE_ASSIGN='"mov 0,%0" : "=&r"(ret)' + ;; + + *) + OPAL_CHECK_SYNC_BUILTINS([opal_cv_asm_builtin="BUILTIN_SYNC"], + [AC_MSG_ERROR([No atomic primitives available for $host])]) + ;; + esac + + if test "x$OPAL_ASM_SUPPORT_64BIT" = "x1" && test "$opal_cv_asm_builtin" = "BUILTIN_SYNC" && + test "$opal_asm_sync_have_64bit" = "0" ; then + # __sync builtins exist but do not implement 64-bit support. Fall back on inline asm. + opal_cv_asm_builtin="BUILTIN_NO" + fi + + if test "$opal_cv_asm_builtin" = "BUILTIN_SYNC" || test "$opal_cv_asm_builtin" = "BUILTIN_GCC" ; then + AC_DEFINE([OPAL_C_GCC_INLINE_ASSEMBLY], [1], + [Whether C compiler supports GCC style inline assembly]) + else + AC_DEFINE_UNQUOTED([OPAL_ASM_SUPPORT_64BIT], + [$OPAL_ASM_SUPPORT_64BIT], + [Whether we can do 64bit assembly operations or not. Should not be used outside of the assembly header files]) + AC_SUBST([OPAL_ASM_SUPPORT_64BIT]) + + # + # figure out if we need any special function start / stop code + # + case $host_os in + aix*) + opal_asm_arch_config="aix" + ;; + *) + opal_asm_arch_config="default" + ;; + esac + + # now that we know our architecture, try to inline assemble + OPAL_CHECK_INLINE_C_GCC([$OPAL_GCC_INLINE_ASSIGN]) + OPAL_CHECK_INLINE_C_DEC + OPAL_CHECK_INLINE_C_XLC + + # format: + # config_file-text-global-label_suffix-gsym-lsym-type-size-align_log-ppc_r_reg-64_bit-gnu_stack + asm_format="${opal_asm_arch_config}" + asm_format="${asm_format}-${opal_cv_asm_text}-${opal_cv_asm_global}" + asm_format="${asm_format}-${opal_cv_asm_label_suffix}-${opal_cv_asm_gsym}" + asm_format="${asm_format}-${opal_cv_asm_lsym}" + asm_format="${asm_format}-${opal_cv_asm_type}-${opal_asm_size}" + asm_format="${asm_format}-${opal_asm_align_log_result}" + if test "$opal_cv_asm_arch" = "POWERPC32" || test "$opal_cv_asm_arch" = "POWERPC64" ; then + asm_format="${asm_format}-${opal_cv_asm_powerpc_r_reg}" + else + asm_format="${asm_format}-1" + fi + asm_format="${asm_format}-${OPAL_ASM_SUPPORT_64BIT}" + opal_cv_asm_format="${asm_format}-${opal_cv_asm_gnu_stack}" + # For the Makefile, need to escape the $ as $$. Don't display + # this version, but make sure the Makefile gives the right thing + # when regenerating the files because the base has been touched. + OPAL_ASSEMBLY_FORMAT=`echo "$opal_cv_asm_format" | sed -e 's/\\\$/\\\$\\\$/'` + + AC_MSG_CHECKING([for assembly format]) + AC_MSG_RESULT([$opal_cv_asm_format]) + AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_FORMAT], ["$OPAL_ASSEMBLY_FORMAT"], + [Format of assembly file]) + AC_SUBST([OPAL_ASSEMBLY_FORMAT]) + fi # if opal_cv_asm_builtin = BUILTIN_SYNC + + result="OPAL_$opal_cv_asm_arch" + OPAL_ASSEMBLY_ARCH="$opal_cv_asm_arch" + AC_MSG_CHECKING([for assembly architecture]) + AC_MSG_RESULT([$opal_cv_asm_arch]) + AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_ARCH], [$result], + [Architecture type of assembly to use for atomic operations and CMA]) + AC_SUBST([OPAL_ASSEMBLY_ARCH]) + + # Check for RDTSCP support + result=0 + AS_IF([test "$opal_cv_asm_arch" = "OPAL_AMD64" || test "$opal_cv_asm_arch" = "OPAL_IA32"], + [AC_MSG_CHECKING([for RDTSCP assembly support]) + AC_LANG_PUSH([C]) + AC_TRY_RUN([[ +int main(int argc, char* argv[]) +{ + unsigned int rax, rdx; + __asm__ __volatile__ ("rdtscp\n": "=a" (rax), "=d" (rdx):: "%rax", "%rdx"); + return 0; +} + ]], + [result=1 + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])], + [#cross compile not supported + AC_MSG_RESULT(["no (cross compiling)"])]) + AC_LANG_POP([C])]) + AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_SUPPORTS_RDTSCP], [$result], + [Whether we have support for RDTSCP instruction]) + + result="OPAL_$opal_cv_asm_builtin" + OPAL_ASSEMBLY_BUILTIN="$opal_cv_asm_builtin" + AC_MSG_CHECKING([for builtin atomics]) + AC_MSG_RESULT([$opal_cv_asm_builtin]) + AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_BUILTIN], [$result], + [Whether to use builtin atomics]) + AC_SUBST([OPAL_ASSEMBLY_BUILTIN]) + + OPAL_ASM_FIND_FILE + + unset result asm_format +])dnl + + +dnl ################################################################# +dnl +dnl OPAL_ASM_FIND_FILE +dnl +dnl +dnl do all the evil mojo to provide a working assembly file +dnl +dnl ################################################################# +AC_DEFUN([OPAL_ASM_FIND_FILE], [ + AC_REQUIRE([AC_PROG_GREP]) + AC_REQUIRE([AC_PROG_FGREP]) + +if test "$opal_cv_asm_arch" != "WINDOWS" && test "$opal_cv_asm_builtin" != "BUILTIN_SYNC" && test "$opal_cv_asm_builtin" != "BUILTIN_OSX" ; then + AC_CHECK_PROG([PERL], [perl], [perl]) + + # see if we have a pre-built one already + AC_MSG_CHECKING([for pre-built assembly file]) + opal_cv_asm_file="" + if $GREP "$opal_cv_asm_arch" "${OPAL_TOP_SRCDIR}/opal/asm/asm-data.txt" | $FGREP "$opal_cv_asm_format" >conftest.out 2>&1 ; then + opal_cv_asm_file="`cut -f3 conftest.out`" + if test ! "$opal_cv_asm_file" = "" ; then + opal_cv_asm_file="atomic-${opal_cv_asm_file}.s" + if test -f "${OPAL_TOP_SRCDIR}/opal/asm/generated/${opal_cv_asm_file}" ; then + AC_MSG_RESULT([yes ($opal_cv_asm_file)]) + else + AC_MSG_RESULT([no ($opal_cv_asm_file not found)]) + opal_cv_asm_file="" + fi + fi + else + AC_MSG_RESULT([no (not in asm-data)]) + fi + rm -rf conftest.* + + if test "$opal_cv_asm_file" = "" ; then + if test ! "$PERL" = "" ; then + # we have perl... Can we generate a file? + AC_MSG_CHECKING([whether possible to generate assembly file]) + mkdir -p opal/asm/generated + opal_cv_asm_file="atomic-local.s" + opal_try='$PERL $OPAL_TOP_SRCDIR/opal/asm/generate-asm.pl $opal_cv_asm_arch "$opal_cv_asm_format" $OPAL_TOP_SRCDIR/opal/asm/base $OPAL_TOP_BUILDDIR/opal/asm/generated/$opal_cv_asm_file >conftest.out 2>&1' + if AC_TRY_EVAL(opal_try) ; then + # save the warnings + cat conftest.out >&AC_FD_CC + AC_MSG_RESULT([yes]) + else + # save output + cat conftest.out >&AC_FD_CC + opal_cv_asm_file="" + AC_MSG_RESULT([failed]) + AC_MSG_WARN([Could not build atomic operations assembly file.]) + AC_MSG_WARN([There will be no atomic operations for this build.]) + fi + else + AC_MSG_WARN([Could not find prebuilt atomic operations file and could not]) + AC_MSG_WARN([find perl to attempt to generate a custom assembly file.]) + AC_MSG_WARN([There will be no atomic operations for this build.]) + fi + fi + rm -rf conftest.* +else + # On windows with VC++, atomics are done with compiler primitives + opal_cv_asm_file="" +fi + + AC_MSG_CHECKING([for atomic assembly filename]) + if test "$opal_cv_asm_file" = "" ; then + AC_MSG_RESULT([none]) + result=0 + else + AC_MSG_RESULT([$opal_cv_asm_file]) + result=1 + fi + + AC_DEFINE_UNQUOTED([OPAL_HAVE_ASM_FILE], [$result], + [Whether there is an atomic assembly file available]) + AM_CONDITIONAL([OPAL_HAVE_ASM_FILE], [test "$result" = "1"]) + + OPAL_ASM_FILE=$opal_cv_asm_file + AC_SUBST(OPAL_ASM_FILE) +])dnl diff --git a/config/opal_config_files.m4 b/config/opal_config_files.m4 new file mode 100644 index 00000000..14aec99b --- /dev/null +++ b/config/opal_config_files.m4 @@ -0,0 +1,30 @@ +# -*- shell-script -*- +# +# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +# This file is m4_included in the top-level configure.ac + +AC_DEFUN([OPAL_CONFIG_FILES],[ + AC_CONFIG_FILES([ + opal/Makefile + opal/etc/Makefile + opal/include/Makefile + opal/asm/Makefile + opal/datatype/Makefile + opal/util/Makefile + opal/util/keyval/Makefile + opal/mca/base/Makefile + opal/tools/wrappers/Makefile + opal/tools/wrappers/opalcc-wrapper-data.txt + opal/tools/wrappers/opalc++-wrapper-data.txt + opal/tools/wrappers/opal.pc + opal/tools/opal-checkpoint/Makefile + opal/tools/opal-restart/Makefile + ]) +]) diff --git a/config/opal_config_pthreads.m4 b/config/opal_config_pthreads.m4 new file mode 100644 index 00000000..b2d9c7aa --- /dev/null +++ b/config/opal_config_pthreads.m4 @@ -0,0 +1,676 @@ +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2012 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl Copyright (c) 2014-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl +dnl OPAL_CONFIG_POSIX_THREADS() +dnl +dnl Configure posix threads, setting the following variables (but +dnl not calling AC_SUBST on them). + +# ******************************************************************** +# +# Internal macros - do not call from outside OPAL_CONFIG_POSIX_THREADS +# +# ******************************************************************** + + +AC_DEFUN([OPAL_INTL_PTHREAD_TRY_LINK], [ +# BEGIN: OPAL_INTL_PTHREAD_TRY_LINK +# +# Make sure that we can run a small application in C or C++, which +# ever is the current language. Do make sure that C or C++ is the +# current language. +# +# As long as this is not being run.... +# pthread_t may be anything from an int to a struct -- init with self-tid. +# + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include + +int i = 3; +pthread_t me, newthread; + +void cleanup_routine(void *foo); +void *thread_main(void *foo); + +void cleanup_routine(void *foo) { i = 4; } +void *thread_main(void *foo) { i = 2; return (void*) &i; } + +int main(int argc, char* argv[]) +{ + pthread_attr_t attr; + + me = pthread_self(); + pthread_atfork(NULL, NULL, NULL); + pthread_attr_init(&attr); + pthread_cleanup_push(cleanup_routine, 0); + pthread_create(&newthread, &attr, thread_main, 0); + pthread_join(newthread, 0); + pthread_cleanup_pop(0); + + return 0; +}]])], + [$1], [$2]) +# END: OPAL_INTL_PTHREAD_TRY_LINK +])dnl + + +AC_DEFUN([OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN], [ +# BEGIN: OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN +# +# Make sure that we can run a small application in Fortran, with +# pthreads living in a C object file + +# Fortran module +cat > conftestf.f < conftest.c < +#include +#include +$opal_conftest_h + +#ifdef __cplusplus +extern "C" { +#endif +int i = 3; +pthread_t me, newthread; + +void cleanup_routine(void *foo); +void *thread_main(void *foo); +void pthreadtest_f(void); + +void cleanup_routine(void *foo) { i = 4; } +void *thread_main(void *foo) { i = 2; return (void*) &i; } + +void pthreadtest_f(void) +{ + pthread_attr_t attr; + + me = pthread_self(); + pthread_atfork(NULL, NULL, NULL); + pthread_attr_init(&attr); + pthread_cleanup_push(cleanup_routine, 0); + pthread_create(&newthread, &attr, thread_main, 0); + pthread_join(newthread, 0); + pthread_cleanup_pop(0); +} + +void pthreadtest(void) +{ pthreadtest_f(); } + +void pthreadtest_(void) +{ pthreadtest_f(); } + +void pthreadtest__(void) +{ pthreadtest_f(); } + +void PTHREADTEST(void) +{ pthreadtest_f(); } + +#ifdef __cplusplus +} +#endif +EOF + +# Try the compile +OPAL_LOG_COMMAND( + [$CC $CFLAGS -I. -c conftest.c], + OPAL_LOG_COMMAND( + [$FC $FCFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS], + [HAPPY=1], + [HAPPY=0]), + [HAPPY=0]) + +if test "$HAPPY" = "1"; then + $1 +else + OPAL_LOG_MSG([here is the C program:], 1) + OPAL_LOG_FILE([conftest.c]) + if test -f conftest.h; then + OPAL_LOG_MSG([here is contest.h:], 1) + OPAL_LOG_FILE([conftest.h]) + fi + OPAL_LOG_MSG([here is the fortran program:], 1) + OPAL_LOG_FILE([conftestf.f]) + $2 +fi + +unset HAPPY opal_conftest_h +rm -rf conftest* +# END: OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN +])dnl + + +# ******************************************************************** +# +# Try to compile thread support without any special flags +# +# ******************************************************************** +AC_DEFUN([OPAL_INTL_POSIX_THREADS_PLAIN_C], [ +# +# C compiler +# +if test "$opal_pthread_c_success" = "0"; then + AC_MSG_CHECKING([if C compiler and POSIX threads work as is]) + + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_c_success=1, + opal_pthread_c_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_c_success" = "1"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi +])dnl + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_PLAIN_CXX], [ +# +# C++ compiler +# +if test "$opal_pthread_cxx_success" = "0"; then + AC_MSG_CHECKING([if C++ compiler and POSIX threads work as is]) + + AC_LANG_PUSH(C++) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_cxx_success=1, + opal_pthread_cxx_success=0) + AC_LANG_POP(C++) + if test "$opal_pthread_cxx_success" = "1"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi +])dnl + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_PLAIN_FC], [ +# +# Fortran compiler +# +if test "$opal_pthread_fortran_success" = "0" && \ + test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \ + test $ompi_fortran_happy -eq 1; then + AC_MSG_CHECKING([if Fortran compiler and POSIX threads work as is]) + + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN(opal_pthread_fortran_success=1, + opal_pthread_fortran_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_fortran_success" = "1"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi +])dnl + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_PLAIN], [ +# BEGIN: OPAL_INTL_POSIX_THREADS_PLAIN +# +# Check if can compile without any special flags +# we throw -D_REENTRANT or -D_THREAD_SAFE in here, just in +# case. Some systems (OS X, for example) generally don't need +# the defines, but then will on one system header here or there +# why take chances? +# + +# Only run C++ and Fortran if those compilers already configured +AC_PROVIDE_IFELSE([AC_PROG_CC], + [OPAL_INTL_POSIX_THREADS_PLAIN_C], + [opal_pthread_c_success=1]) + +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [OPAL_INTL_POSIX_THREADS_PLAIN_CXX], + [opal_pthread_cxx_success=1]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [OPAL_INTL_POSIX_THREADS_PLAIN_FC], + [opal_pthread_fortran_success=1]) + +# End: OPAL_INTL_POSIX_THREADS_PLAIN +])dnl + + +# ******************************************************************** +# +# Try to compile thread support with special compiler flags +# +# ******************************************************************** +AC_DEFUN([OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_C], [ +# +# C compiler +# +if test "$opal_pthread_c_success" = "0"; then + for pf in $pflags; do + AC_MSG_CHECKING([if C compiler and POSIX threads work with $pf]) + CFLAGS="$orig_CFLAGS $pf" + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_c_success=1, + opal_pthread_c_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_c_success" = "1"; then + PTHREAD_CFLAGS="$pf" + AC_MSG_RESULT([yes]) + break + else + PTHREAD_CFLAGS= + CFLAGS="$orig_CFLAGS" + AC_MSG_RESULT([no]) + fi + done +fi +]) + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_CXX], [ +# +# C++ compiler +# +if test "$opal_pthread_cxx_success" = "0"; then + for pf in $pflags; do + AC_MSG_CHECKING([if C++ compiler and POSIX threads work with $pf]) + CXXFLAGS="$orig_CXXFLAGS $pf" + AC_LANG_PUSH(C++) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_cxx_success=1, + opal_pthread_cxx_success=0) + AC_LANG_POP(C++) + if test "$opal_pthread_cxx_success" = "1"; then + PTHREAD_CXXFLAGS="$pf" + AC_MSG_RESULT([yes]) + break + else + PTHREAD_CXXFLAGS= + CXXFLAGS="$orig_CXXFLAGS" + AC_MSG_RESULT([no]) + fi + done +fi +]) + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_FC], [ +# +# Fortran compiler +# +if test "$opal_pthread_fortran_success" = "0" && \ + test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \ + test $ompi_fortran_happy -eq 1; then + for pf in $pflags; do + AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $pf]) + FCFLAGS="$orig_FCFLAGS $pf" + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN(opal_pthread_fortran_success=1, + opal_pthread_fortran_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_fortran_success" = "1"; then + PTHREAD_FCFLAGS="$pf" + AC_MSG_RESULT([yes]) + break + else + PTHREAD_FCFLAGS= + FCFLAGS="$orig_FCFLAGS" + AC_MSG_RESULT([no]) + fi + done +fi +]) + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS],[ +# Begin: OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS +# +# If above didn't work, try some super-special compiler flags +# that get evaluated to the "right" things. +# +# -Kthread: +# -kthread: FreeBSD kernel threads +# -pthread: Modern GCC (most all platforms) +# -pthreads: GCC on solaris +# -mthreads: +# -mt: Solaris native compilers / HP-UX aCC +# +# Put -mt before -mthreads because HP-UX aCC will properly compile +# with -mthreads (reading as -mt), but emit a warning about unknown +# flags hreads. Stupid compilers. + +case "${host_cpu}-${host_os}" in + *solaris*) + pflags="-pthread -pthreads -mt" + ;; + *) + pflags="-Kthread -kthread -pthread -pthreads -mt -mthreads" + ;; +esac + +# Only run C++ and Fortran if those compilers already configured +AC_PROVIDE_IFELSE([AC_PROG_CC], + [OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_C], + [opal_pthread_c_success=1]) + +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_CXX], + [opal_pthread_cxx_success=1]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS_FC], + [opal_pthread_fortran_success=1]) + +# End: OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS +])dnl + + +# ******************************************************************** +# +# Try to compile thread support with extra libs +# +# ******************************************************************** +AC_DEFUN([OPAL_INTL_POSIX_THREADS_LIBS_C],[ +# +# C compiler +# +if test "$opal_pthread_c_success" = "0"; then + for pl in $plibs; do + AC_MSG_CHECKING([if C compiler and POSIX threads work with $pl]) + case "${host_cpu}-${host-_os}" in + *-aix* | *-freebsd*) + if test "`echo $CPPFLAGS | $GREP 'D_THREAD_SAFE'`" = ""; then + PTHREAD_CPPFLAGS="-D_THREAD_SAFE" + CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS" + fi + ;; + *) + if test "`echo $CPPFLAGS | $GREP 'D_REENTRANT'`" = ""; then + PTHREAD_CPPFLAGS="-D_REENTRANT" + CPPFLAGS="$CPPFLAGS $PTHREAD_CPPFLAGS" + fi + ;; + esac + LIBS="$orig_LIBS $pl" + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_c_success=1, + opal_pthread_c_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_c_success" = "1"; then + PTHREAD_LIBS="$pl" + AC_MSG_RESULT([yes]) + else + PTHREAD_CPPFLAGS= + CPPFLAGS="$orig_CPPFLAGS" + LIBS="$orig_LIBS" + AC_MSG_RESULT([no]) + fi + done +fi +])dnl + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_LIBS_CXX],[ +# +# C++ compiler +# +if test "$opal_pthread_cxx_success" = "0"; then + if test ! "$opal_pthread_c_success" = "0" && test ! "$PTHREAD_LIBS" = "" ; then + AC_MSG_CHECKING([if C++ compiler and POSIX threads work with $PTHREAD_LIBS]) + case "${host_cpu}-${host-_os}" in + *-aix* | *-freebsd*) + if test "`echo $CXXCPPFLAGS | $GREP 'D_THREAD_SAFE'`" = ""; then + PTHREAD_CXXCPPFLAGS="-D_THREAD_SAFE" + CXXCPPFLAGS="$CXXCPPFLAGS $PTHREAD_CXXCPPFLAGS" + fi + ;; + *) + if test "`echo $CXXCPPFLAGS | $GREP 'D_REENTRANT'`" = ""; then + PTHREAD_CXXCPPFLAGS="-D_REENTRANT" + CXXCPPFLAGS="$CXXCPPFLAGS $PTHREAD_CXXCPPFLAGS" + fi + ;; + esac + LIBS="$orig_LIBS $PTHREAD_LIBS" + AC_LANG_PUSH(C++) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_cxx_success=1, + opal_pthread_cxx_success=0) + AC_LANG_POP(C++) + if test "$opal_pthread_cxx_success" = "1"; then + AC_MSG_RESULT([yes]) + else + CXXCPPFLAGS="$orig_CXXCPPFLAGS" + LIBS="$orig_LIBS" + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Can not find working threads configuration. aborting]) + fi + else + for pl in $plibs; do + AC_MSG_CHECKING([if C++ compiler and POSIX threads work with $pl]) + case "${host_cpu}-${host-_os}" in + *-aix* | *-freebsd*) + if test "`echo $CXXCPPFLAGS | $GREP 'D_THREAD_SAFE'`" = ""; then + PTHREAD_CXXCPPFLAGS="-D_THREAD_SAFE" + CXXCPPFLAGS="$CXXCPPFLAGS $PTHREAD_CXXCPPFLAGS" + fi + ;; + *) + if test "`echo $CXXCPPFLAGS | $GREP 'D_REENTRANT'`" = ""; then + PTHREAD_CXXCPPFLAGS="-D_REENTRANT" + CXXCPPFLAGS="$CXXCPPFLAGS $PTHREAD_CXXCPPFLAGS" + fi + ;; + esac + LIBS="$orig_LIBS $pl" + AC_LANG_PUSH(C++) + OPAL_INTL_PTHREAD_TRY_LINK(opal_pthread_cxx_success=1, + opal_pthread_cxx_success=0) + AC_LANG_POP(C++) + if test "$opal_pthread_cxx_success" = "1"; then + PTHREAD_LIBS="$pl" + AC_MSG_RESULT([yes]) + else + PTHREAD_CXXCPPFLAGS= + CXXCPPFLAGS="$orig_CXXCPPFLAGS" + LIBS="$orig_LIBS" + AC_MSG_RESULT([no]) + fi + done + fi +fi +])dnl + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_LIBS_FC],[ +# +# Fortran compiler +# +if test "$opal_pthread_fortran_success" = "0" && \ + test "$OMPI_TRY_FORTRAN_BINDINGS" -gt "$OMPI_FORTRAN_NO_BINDINGS" && \ + test $ompi_fortran_happy -eq 1; then + if test ! "$opal_pthread_c_success" = "0" && test ! "$PTHREAD_LIBS" = "" ; then + AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $PTHREAD_LIBS]) + LIBS="$orig_LIBS $PTHREAD_LIBS" + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN(opal_pthread_fortran_success=1, + opal_pthread_fortran_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_fortran_success" = "1"; then + AC_MSG_RESULT([yes]) + else + LIBS="$orig_LIBS" + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Can not find working threads configuration. aborting]) + fi + else + for pl in $plibs; do + AC_MSG_CHECKING([if Fortran compiler and POSIX threads work with $pl]) + LIBS="$orig_LIBS $pl" + AC_LANG_PUSH(C) + OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN(opal_pthread_fortran_success=1, + opal_pthread_fortran_success=0) + AC_LANG_POP(C) + if test "$opal_pthread_fortran_success" = "1"; then + PTHREAD_LIBS="$pl" + AC_MSG_RESULT([yes]) + break + else + LIBS="$orig_LIBS" + AC_MSG_RESULT([no]) + fi + done + fi +fi +])dnl + + +AC_DEFUN([OPAL_INTL_POSIX_THREADS_LIBS],[ +# Begin: OPAL_INTL_POSIX_THREADS_LIBS +# +# if we can't find a super-special compiler flags, try some libraries. +# we throw -D_REENTRANT or -D_THREAD_SAFE in here, just in case. Some +# systems (OS X, for example) generally don't need the defines, but +# then will on one system header here or there why take chances? +# +# libpthreads: AIX - must check before libpthread +# liblthread: LinuxThreads on FreeBSD +# libpthread: The usual place (like we can define usual!) +plibs="-lpthreads -llthread -lpthread" + +# Only run C++ and Fortran if those compilers already configured +AC_PROVIDE_IFELSE([AC_PROG_CC], + [OPAL_INTL_POSIX_THREADS_LIBS_C], + [opal_pthread_c_success=1]) + +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [OPAL_INTL_POSIX_THREADS_LIBS_CXX], + [opal_pthread_cxx_success=1]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [OPAL_INTL_POSIX_THREADS_LIBS_FC], + [opal_pthread_fortran_success=1]) + +# End: OPAL_INTL_POSIX_THREADS_LIBS] +)dnl + + +#******************************************************************** +# +# External macro (aka, the real thing) +# +#******************************************************************** +AC_DEFUN([OPAL_CONFIG_POSIX_THREADS],[ + AC_REQUIRE([AC_PROG_GREP]) + +opal_pthread_c_success=0 +opal_pthread_fortran_success=0 +opal_pthread_cxx_success=0 + +orig_CFLAGS="$CFLAGS" +orig_FCFLAGS="$FCFLAGS" +orig_CXXFLAGS="$CXXFLAGS" +orig_CPPFLAGS="$CPPFLAGS" +orig_CXXCPPFLAGS="$CXXCPPFLAGS" +orig_LDFLAGS="$LDFLAGS" +orig_LIBS="$LIBS" + +PTHREAD_CFLAGS= +PTHREAD_FCFLAGS= +PTHREAD_CXXFLAGS= +PTHREAD_CPPFLAGS= +PTHREAD_CXXCPPFLAGS= +PTHREAD_LDFLAGS= +PTHREAD_LIBS= + +# Try with the basics, mam. +OPAL_INTL_POSIX_THREADS_PLAIN + +# Try the super-special compiler flags. +OPAL_INTL_POSIX_THREADS_SPECIAL_FLAGS + +# Try the normal linking methods (that's no fun) +OPAL_INTL_POSIX_THREADS_LIBS + +# +# check to see if we can create shared memory mutexes and conditions +# +AC_CHECK_FUNCS([pthread_mutexattr_setpshared pthread_condattr_setpshared]) + +# +# check to see if we can set error checking mutexes +# + +# LinuxThreads +AC_MSG_CHECKING([for PTHREAD_MUTEX_ERRORCHECK_NP]) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[pthread_mutexattr_settype(NULL, PTHREAD_MUTEX_ERRORCHECK_NP);]])], + [result="yes" defval=1], [result="no" defval=0]) +AC_MSG_RESULT([$result]) +AC_DEFINE_UNQUOTED([OPAL_HAVE_PTHREAD_MUTEX_ERRORCHECK_NP], [$defval], + [If PTHREADS implementation supports PTHREAD_MUTEX_ERRORCHECK_NP]) + +# Mac OS X +AC_MSG_CHECKING([for PTHREAD_MUTEX_ERRORCHECK]) +AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[pthread_mutexattr_settype(NULL, PTHREAD_MUTEX_ERRORCHECK);]])], + [result="yes" defval=1], [result="no" defval=0]) +AC_MSG_RESULT([$result]) +AC_DEFINE_UNQUOTED([OPAL_HAVE_PTHREAD_MUTEX_ERRORCHECK], [$defval], + [If PTHREADS implementation supports PTHREAD_MUTEX_ERRORCHECK]) + +CFLAGS="$orig_CFLAGS" +FCFLAGS="$orig_FCFLAGS" +CXXFLAGS="$orig_CXXFLAGS" +CPPFLAGS="$orig_CPPFLAGS" +CXXCPPFLAGS="$orig_CXXCPPFLAGS" +LDFLAGS="$orig_LDFLAGS" +LIBS="$orig_LIBS" + +if test "$OMPI_TRY_FORTRAN_BINDINGS" = "$OMPI_FORTRAN_NO_BINDINGS" || \ + test $ompi_fortran_happy -ne 1; then + opal_pthread_fortran_success=1 +fi + +if test "$opal_pthread_c_success" = "1" && \ + test "$opal_pthread_cxx_success" = "1" && \ + test "$opal_pthread_fortran_success" = "1"; then + internal_useless=1 + $1 +else + internal_useless=1 + $2 +fi + +unset opal_pthread_c_success opal_pthread_fortran_success opal_pthread_cxx_success +unset internal_useless +])dnl diff --git a/config/opal_config_subdir.m4 b/config/opal_config_subdir.m4 new file mode 100644 index 00000000..b6e20c80 --- /dev/null +++ b/config/opal_config_subdir.m4 @@ -0,0 +1,147 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2012-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CONFIG_SUBDIR],[ +OPAL_VAR_SCOPE_PUSH([subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp]) + +# +# Invoke configure in a specific subdirectory. +# +# $1 is the directory to invoke in +# $2 is the list of arguments to pass +# $3 is actions to execute upon success +# $4 is actions to execute upon failure +# +subdir_dir="$1" +subdir_args="$2" +subdir_success="$3" +subdir_failure="$4" + +# +# Sanity checks +# + +if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then + AC_MSG_NOTICE([OPAL configuring in $subdir_dir]) + + # + # Gotta check where srcdir is for VPATH builds. If srcdir is not + # ., then we need to mkdir the subdir. Otherwise, we can just cd + # into it. + # + + case $srcdir in + .) + ;; + *) + { case $subdir_dir in + [[\\/]]* | ?:[[\\/]]* ) total_dir=;; + *) total_dir=.;; + esac + temp=$subdir_dir + for dir_part in `IFS='/\\'; set X $temp; shift; echo "$[@]"`; do + case $dir_part in + # Skip DOS drivespec + ?:) total_dir=$dir_part ;; + *) total_dir=$total_dir/$dir_part + test -d "$total_dir" || + mkdir "$total_dir" || + AC_MSG_ERROR([cannot create $subdir_dir]) + ;; + esac + done; } + + if test -d ./$subdir_dir; then :; + else + AC_MSG_ERROR([cannot create `pwd`/$subdir_dir]) + fi + ;; + esac + + # + # Move into the target directory + # + + subdir_parent=`pwd` + cd $subdir_dir + + # + # Make a "../" for each directory in $subdir_dir. + # + + subdir_dots=`[echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g]'` + # + # Construct the --srcdir argument + # + + case $srcdir in + .) + # In place + subdir_srcdir="$srcdir" + ;; + [[\\/]* | ?:[\\/]*] ) + # Absolute path + subdir_srcdir="$srcdir/$subdir_dir" + ;; + *) + # Relative path + subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" + ;; + esac + + # + # Construct the --cache-file argument + # + + # BWB - subdir caching is a pain since we change CFLAGS and all that. + # Just disable it for now + subdir_cache_file="/dev/null" + + # + # Invoke the configure script in the subdirectory + # + + sub_configure="$SHELL '$subdir_srcdir/configure'" + AC_MSG_NOTICE([running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking]) + eval "$sub_configure $subdir_args \ + --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" + if test "$?" = "0"; then + eval $subdir_success + AC_MSG_NOTICE([$sub_configure succeeded for $subdir_dir]) + else + eval $subdir_failure + AC_MSG_NOTICE([$sub_configure *failed* for $subdir_dir]) + fi + + # + # Go back to the topdir + # + + cd $subdir_parent +fi + +# +# Clean up +# + +OPAL_VAR_SCOPE_POP])dnl diff --git a/config/opal_config_subdir_args.m4 b/config/opal_config_subdir_args.m4 new file mode 100644 index 00000000..3b7a3558 --- /dev/null +++ b/config/opal_config_subdir_args.m4 @@ -0,0 +1,84 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved. +dnl Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CONFIG_SUBDIR_ARGS],[ +OPAL_VAR_SCOPE_PUSH([subdirs_str subdirs_skip subdirs_args subdirs_arg]) +# +# Invoke configure in subdirectories. +# +# $1 is the name of the variable to assign the output to +# + +# +# Make a list of command line args --eliminate the --srcdir and +# --cache-file args, because we need to replace them with our own +# values when invoking the sub-configure script. Also eliminate +# the --with-platform as this will confuse any subdir with +# similar options +# + +subdirs_args= +subdirs_skip=no + +eval "set x $ac_configure_args" +shift +for subdirs_arg +do + if test "$subdirs_skip" = "yes"; then + subdirs_skip=no + else + case $subdirs_arg in + -cache-file | --cache-file | -cache | --cache) + subdirs_skip=yes + ;; + --config-cache | -C) + ;; + -cache-file=* | --cache-file=*) + ;; + -srcdir | --srcdir) + subdirs_skip=yes + ;; + -srcdir=* | --srcdir=*) + ;; + -with-platform=* | --with-platform=*) + ;; + *) + case $subdir_arg in + *\'*) subdir_arg=`echo "$subdir_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + subdirs_args="$subdirs_args '$subdirs_arg'" + ;; + esac + fi +done + +# +# Assign the output +# + +subdirs_str=$1=\"$subdirs_args\" +eval "$subdirs_str" + +# +# Clean up +# + +OPAL_VAR_SCOPE_POP])dnl diff --git a/config/opal_config_threads.m4 b/config/opal_config_threads.m4 new file mode 100644 index 00000000..66aa874a --- /dev/null +++ b/config/opal_config_threads.m4 @@ -0,0 +1,72 @@ +dnl +dnl Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2009-2011 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CONFIG_THREADS],[ +# +# Arguments: none +# +# Dependencies: None +# +# Modifies: +# none - see called tests +# +# configure threads +# + +# +# Check we have POSIX threads +# +OPAL_CONFIG_POSIX_THREADS(HAVE_POSIX_THREADS=1, HAVE_POSIX_THREADS=0) +AC_MSG_CHECKING([for working POSIX threads package]) +if test "$HAVE_POSIX_THREADS" = "1" ; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +export HAVE_POSIX_THREADS + +# +# Ask what threading we want (allow posix right now) +# + +if test "$HAVE_POSIX_THREADS" = "0"; then + AC_MSG_WARN(["*** POSIX threads are not"]) + AC_MSG_WARN(["*** available on your system "]) + AC_MSG_ERROR(["*** Can not continue"]) +fi + +THREAD_CFLAGS="$PTHREAD_CFLAGS" +THREAD_FCFLAGS="$PTHREAD_FCFLAGS" +THREAD_CXXFLAGS="$PTHREAD_CXXFLAGS" +THREAD_CPPFLAGS="$PTHREAD_CPPFLAGS" +THREAD_CXXCPPFLAGS="$PTHREAD_CXXCPPFLAGS" +THREAD_LDFLAGS="$PTHREAD_LDFLAGS" +THREAD_LIBS="$PTHREAD_LIBS" + +OPAL_CHECK_PTHREAD_PIDS + +AC_DEFINE_UNQUOTED([OPAL_ENABLE_MULTI_THREADS], [1], + [Whether we should enable thread support within the OPAL code base]) + +])dnl + diff --git a/config/opal_configure_options.m4 b/config/opal_configure_options.m4 new file mode 100644 index 00000000..06619dce --- /dev/null +++ b/config/opal_configure_options.m4 @@ -0,0 +1,516 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009 IBM Corporation. All rights reserved. +dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights +dnl reserved. +dnl Copyright (c) 2009-2011 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2011-2013 NVIDIA Corporation. All rights reserved. +dnl Copyright (c) 2013 Intel, Inc. All rights reserved +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_CONFIGURE_OPTIONS],[ +opal_show_subtitle "OPAL Configuration options" + + +# +# Is this a developer copy? +# + +if test -d .git; then + OPAL_DEVEL=1 +else + OPAL_DEVEL=0 +fi + + +# +# Code coverage options +# + +AC_MSG_CHECKING([if want to run code coverage]) +AC_ARG_ENABLE(coverage, + AC_HELP_STRING([--enable-coverage], + [enable code coverage files to be generated])) +if test "$enable_coverage" = "yes"; then + if test "$enable_shared" = "yes"; then + AC_MSG_WARN([Code coverage can run only with static libraries. Please +run configure with --enable-static --disable-shared if +you want code coverage. Also ensure that you execute +make clean too ensure removal of all leftover shared +mpi libraries]) + AC_MSG_ERROR([Cannot continue processing]) + fi + AC_MSG_RESULT([yes]) + WANT_COVERAGE=1 +else + AC_MSG_RESULT([no]) + WANT_COVERAGE=0 +fi + + +# +# Branch Probabilities options +# + +AC_MSG_CHECKING([if want to compile with branch probabilities]) +AC_ARG_ENABLE(branch-probabilities, + AC_HELP_STRING([--enable-branch-probabilities], + [enable profile arcs and branch probability optimization])) +if test "$enable_branch_probabilities" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_BRANCH_PROBABILITIES=1 +else + AC_MSG_RESULT([no]) + WANT_BRANCH_PROBABILITIES=0 +fi + + +# +# Memory debugging +# + +AC_MSG_CHECKING([if want to debug memory usage]) +AC_ARG_ENABLE(mem-debug, + AC_HELP_STRING([--enable-mem-debug], + [enable memory debugging (not for general MPI users!) (default: disabled)])) +if test "$enable_mem_debug" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_MEM_DEBUG=1 +else + AC_MSG_RESULT([no]) + WANT_MEM_DEBUG=0 +fi +AC_DEFINE_UNQUOTED(OPAL_ENABLE_MEM_DEBUG, $WANT_MEM_DEBUG, + [Whether we want the memory profiling or not]) + +# +# Memory profiling +# + +AC_MSG_CHECKING([if want to profile memory usage]) +AC_ARG_ENABLE(mem-profile, + AC_HELP_STRING([--enable-mem-profile], + [enable memory profiling (not for general MPI users!) (default: disabled)])) +if test "$enable_mem_profile" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_MEM_PROFILE=1 +else + AC_MSG_RESULT([no]) + WANT_MEM_PROFILE=0 +fi +AC_DEFINE_UNQUOTED(OPAL_ENABLE_MEM_PROFILE, $WANT_MEM_PROFILE, + [Whether we want the memory profiling or not]) + +# +# Developer picky compiler options +# + +AC_MSG_CHECKING([if want developer-level compiler pickyness]) +AC_ARG_ENABLE(picky, + AC_HELP_STRING([--enable-picky], + [enable developer-level compiler pickyness when building Open MPI (default: disabled, unless a .git directory is found in the build tree)])) +if test "$enable_picky" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_PICKY_COMPILER=1 +else + AC_MSG_RESULT([no]) + WANT_PICKY_COMPILER=0 +fi +#################### Developer default override #################### +if test "$WANT_PICKY_COMPILER" = "0" && test -z "$enable_picky" && test "$OPAL_DEVEL" = 1; then + WANT_PICKY_COMPILER=1 + echo "--> developer override: enable picky compiler by default" +fi +#################### Developer default override #################### + +# +# Developer debugging +# + +AC_MSG_CHECKING([if want developer-level debugging code]) +AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug], + [enable developer-level debugging code (not for general MPI users!) (default: disabled)])) +if test "$enable_debug" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_DEBUG=1 +else + AC_MSG_RESULT([no]) + WANT_DEBUG=0 +fi + + +AC_MSG_CHECKING([if want to developer-level timing framework]) +AC_ARG_ENABLE(timing, + AC_HELP_STRING([--enable-timing], + [enable developer-level timing code (not for general MPI users!) (default: disabled)])) +if test "$enable_timing" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_TIMING=1 +else + AC_MSG_RESULT([no]) + WANT_TIMING=0 +fi + +AC_DEFINE_UNQUOTED(OPAL_ENABLE_TIMING, $WANT_TIMING, + [Whether we want developer-level timing framework or not]) + +AM_CONDITIONAL([OPAL_COMPILE_TIMING], [test "$WANT_TIMING" = "1"]) +AM_CONDITIONAL([OPAL_INSTALL_TIMING_BINARIES], [test "$WANT_TIMING" = "1" && test "$enable_binaries" != "no"]) + +if test "$WANT_DEBUG" = "0"; then + CFLAGS="-DNDEBUG $CFLAGS" + CXXFLAGS="-DNDEBUG $CXXFLAGS" +fi +AC_DEFINE_UNQUOTED(OPAL_ENABLE_DEBUG, $WANT_DEBUG, + [Whether we want developer-level debugging code or not]) + +AC_ARG_ENABLE(debug-symbols, + AC_HELP_STRING([--disable-debug-symbols], + [Disable adding compiler flags to enable debugging symbols if --enable-debug is specified. For non-debugging builds, this flag has no effect.])) + +# +# Do we want to install all of OPAL/ORTE and OMPI's header files? +# + +AC_MSG_CHECKING([if want to install project-internal header files]) +AC_ARG_WITH(devel-headers, + AC_HELP_STRING([--with-devel-headers], + [normal MPI users/applications do not need this (mpi.h and mpif.h are ALWAYS installed). Developer headers are only necessary for MCA module authors (default: disabled).])) +if test "$with_devel_headers" = "yes"; then + AC_MSG_RESULT([yes]) + WANT_INSTALL_HEADERS=1 +else + AC_MSG_RESULT([no]) + WANT_INSTALL_HEADERS=0 +fi +AM_CONDITIONAL(WANT_INSTALL_HEADERS, test "$WANT_INSTALL_HEADERS" = 1) + + +# +# Do we want the pretty-print stack trace feature? +# + +AC_MSG_CHECKING([if want pretty-print stacktrace]) +AC_ARG_ENABLE([pretty-print-stacktrace], + [AC_HELP_STRING([--enable-pretty-print-stacktrace], + [Pretty print stacktrace on process signal (default: enabled)])]) +if test "$enable_pretty_print_stacktrace" = "no" ; then + AC_MSG_RESULT([no]) + WANT_PRETTY_PRINT_STACKTRACE=0 +else + AC_MSG_RESULT([yes]) + WANT_PRETTY_PRINT_STACKTRACE=1 +fi +AC_DEFINE_UNQUOTED([OPAL_WANT_PRETTY_PRINT_STACKTRACE], + [$WANT_PRETTY_PRINT_STACKTRACE], + [if want pretty-print stack trace feature]) + + +# +# Do we want PTY support? +# + +AC_MSG_CHECKING([if want pty support]) +AC_ARG_ENABLE(pty-support, + AC_HELP_STRING([--enable-pty-support], + [Enable/disable PTY support for STDIO forwarding. (default: enabled)])) +if test "$enable_pty_support" = "no" ; then + AC_MSG_RESULT([no]) + OPAL_ENABLE_PTY_SUPPORT=0 +else + AC_MSG_RESULT([yes]) + OPAL_ENABLE_PTY_SUPPORT=1 +fi +AC_DEFINE_UNQUOTED([OPAL_ENABLE_PTY_SUPPORT], [$OPAL_ENABLE_PTY_SUPPORT], + [Whether user wants PTY support or not]) + + +# +# Do we want to disable weak symbols for some reason? +# + +AC_MSG_CHECKING([if want weak symbol support]) +AC_ARG_ENABLE(weak-symbols, + AC_HELP_STRING([--enable-weak-symbols], + [use weak symbols, if available (default: enabled)])) +if test "$enable_weak_symbols" != "no"; then + AC_MSG_RESULT([yes]) + WANT_WEAK_SYMBOLS=1 +else + AC_MSG_RESULT([no]) + WANT_WEAK_SYMBOLS=0 +fi + + +# +# Do we want to allow DLOPEN? +# + +AC_MSG_CHECKING([if want dlopen support]) +AC_ARG_ENABLE([dlopen], + [AC_HELP_STRING([--enable-dlopen], + [Whether build should attempt to use dlopen (or + similar) to dynamically load components. + Disabling dlopen implies --disable-mca-dso. + (default: enabled)])]) +if test "$enable_dlopen" = "no" ; then + enable_mca_dso="no" + enable_mca_static="yes" + OPAL_ENABLE_DLOPEN_SUPPORT=0 + AC_MSG_RESULT([no]) +else + OPAL_ENABLE_DLOPEN_SUPPORT=1 + AC_MSG_RESULT([yes]) +fi +AC_DEFINE_UNQUOTED(OPAL_ENABLE_DLOPEN_SUPPORT, $OPAL_ENABLE_DLOPEN_SUPPORT, + [Whether we want to enable dlopen support]) + +# +# Heterogeneous support +# + +AC_MSG_CHECKING([if want heterogeneous support]) +AC_ARG_ENABLE([heterogeneous], + [AC_HELP_STRING([--enable-heterogeneous], + [Enable features required for heterogeneous + platform support (default: disabled)])]) +if test "$enable_heterogeneous" = "yes" ; then + AC_MSG_RESULT([yes]) + opal_want_heterogeneous=1 +else + AC_MSG_RESULT([no]) + opal_want_heterogeneous=0 +fi +AC_DEFINE_UNQUOTED([OPAL_ENABLE_HETEROGENEOUS_SUPPORT], + [$opal_want_heterogeneous], + [Enable features required for heterogeneous support]) + + +if test "$opal_want_heterogeneous" = 1; then + ompi_cv_c_word_size_align=yes +else + AC_CACHE_CHECK([if word-sized integers must be word-size aligned], + [ompi_cv_c_word_size_align], + [AC_LANG_PUSH(C) + AC_RUN_IFELSE([AC_LANG_PROGRAM([dnl +#include ], [[ long data[2] = {0, 0}; + long *lp; + int *ip; + ip = (int*) data; + ip++; + lp = (long*) ip; + return lp[0]; ]])], + [ompi_cv_c_word_size_align=no], + [ompi_cv_c_word_size_align=yes], + [ompi_cv_c_word_size_align=yes])]) +fi +AS_IF([test $ompi_cv_c_word_size_align = yes], [results=1], [results=0]) +AC_DEFINE_UNQUOTED([OPAL_ALIGN_WORD_SIZE_INTEGERS], [$results], + [set to 1 if word-size integers must be aligned to word-size padding to prevent bus errors]) + + +# +# Cross-compile data +# +AC_ARG_WITH([cross], + [AC_HELP_STRING([--with-cross=FILE], + [Specify configure values that can not be determined in a cross-compilation environment. See the Open MPI FAQ.])]) +if test "$with_cross" = "yes" ; then + AC_MSG_ERROR([--with-cross argument must include FILE option]) +elif test "$with_cross" = "no" ; then + AC_MSG_ERROR([--without-cross is not a valid argument]) +elif test "$with_cross" != "" ; then + if test ! -r $with_cross ; then + AC_MSG_ERROR([could not find cross-compile data file $with_cross]) + fi + + # eval into environment + OPAL_LOG_MSG([Loading cross-compile file $with_cross, with contents below]) + OPAL_LOG_FILE([$with_cross]) + . "$with_cross" +fi + +# +# Do we want to install binaries? +# +AC_ARG_ENABLE([binaries], + [AC_HELP_STRING([--enable-binaries], + [Build and install binaries required for Open MPI, such as the wrapper compilers. Useful for multi-lib installations. (default: enabled)])]) +AM_CONDITIONAL([OPAL_INSTALL_BINARIES], [test "$enable_binaries" != "no"]) + +AC_ARG_ENABLE([script-wrapper-compilers], + [AC_HELP_STRING([--enable-script-wrapper-compilers], + [Use less featured script-based wrapper compilers instead of the standard C-based wrapper compilers. This option ignores the --disable-binaries option and is mainly useful in cross-compile environments])]) + if test "$enable_script_wrapper_compilers" = "yes"; then + WANT_SCRIPT_WRAPPER_COMPILERS=1 + else + WANT_SCRIPT_WRAPPER_COMPILERS=0 + fi +AM_CONDITIONAL([OPAL_WANT_SCRIPT_WRAPPER_COMPILERS], [test "$enable_script_wrapper_compilers" = "yes"]) + +# +# Support per-user config files? +# +AC_ARG_ENABLE([per-user-config-files], + [AC_HELP_STRING([--enable-per-user-config-files], + [Disable per-user configuration files, to save disk accesses during job start-up. This is likely desirable for large jobs. Note that this can also be acheived by environment variables at run-time. (default: enabled)])]) +if test "$enable_per_user_config_files" = "no" ; then + result=0 +else + result=1 +fi +AC_DEFINE_UNQUOTED([OPAL_WANT_HOME_CONFIG_FILES], [$result], + [Enable per-user config files]) + +# +# Do we want to enable IPv6 support? +# +AC_MSG_CHECKING([if want IPv6 support]) +AC_ARG_ENABLE([ipv6], + [AC_HELP_STRING([--enable-ipv6], + [Enable IPv6 support, but only if the underlying system supports it (default: disabled)])]) +if test "$enable_ipv6" = "yes"; then + AC_MSG_RESULT([yes]) + opal_want_ipv6=1 +else + AC_MSG_RESULT([no]) + opal_want_ipv6=0 +fi +AC_DEFINE_UNQUOTED([OPAL_ENABLE_IPV6], [$opal_want_ipv6], + [Enable IPv6 support, but only if the underlying system supports it]) + + +# +# Package/brand string +# +AC_MSG_CHECKING([if want package/brand string]) +AC_ARG_WITH([package-string], + [AC_HELP_STRING([--with-package-string=STRING], + [Use a branding string throughout Open MPI])]) +if test "$with_package_string" = "" || test "$with_package_string" = "no"; then + with_package_string="Open MPI $OPAL_CONFIGURE_USER@$OPAL_CONFIGURE_HOST Distribution" +fi +AC_DEFINE_UNQUOTED([OPAL_PACKAGE_STRING], ["$with_package_string"], + [package/branding string for Open MPI]) +AC_MSG_RESULT([$with_package_string]) + +# +# Ident string +# +AC_MSG_CHECKING([if want ident string]) +AC_ARG_WITH([ident-string], + [AC_HELP_STRING([--with-ident-string=STRING], + [Embed an ident string into Open MPI object files])]) +if test "$with_ident_string" = "" || test "$with_ident_string" = "no"; then + with_ident_string="%VERSION%" +fi +# This is complicated, because $OPAL_VERSION may have spaces in it. +# So put the whole sed expr in single quotes -- i.e., directly +# substitute %VERSION% for (not expanded) $OPAL_VERSION. +with_ident_string="`echo $with_ident_string | sed -e 's/%VERSION%/$OPAL_VERSION/'`" + +# Now eval an echo of that so that the "$OPAL_VERSION" token is +# replaced with its value. Enclose the whole thing in "" so that it +# ends up as 1 token. +with_ident_string="`eval echo $with_ident_string`" + +AC_DEFINE_UNQUOTED([OPAL_IDENT_STRING], ["$with_ident_string"], + [ident string for Open MPI]) +AC_MSG_RESULT([$with_ident_string]) + + +# +# Use alternative checksum algorithm +# +AC_MSG_CHECKING([if want to use an alternative checksum algo for messages]) +AC_ARG_WITH([dst-checksum], + [AC_HELP_STRING([--with-dst-checksum], + [Use an alternative checksum algorithm for messages])]) +if test "$with_dst_checksum" = "yes"; then + AC_MSG_RESULT([yes]) + CFLAGS="-DOPAL_CSUM_DST $CFLAGS" +else + AC_MSG_RESULT([no]) +fi + + +# +# User level (mpi.h.in) visible maximum lengths of strings. +# These may be required in lower-level libraries to set up matching +# data-structures (e.g. OPAL_MAX_OBJECT_NAME). +# +# Default values (as of OMPI-1.3), and some sane minimum and maximum values +# + +# No lower and upper bound required or enforced +OPAL_WITH_OPTION_MIN_MAX_VALUE(processor_name, 256, 16, 1024) + +# Min length according to information passed in ompi/errhandler/errcode.c +OPAL_WITH_OPTION_MIN_MAX_VALUE(error_string, 256, 64, 1024) + +# Min length according to MPI-2.1, p. 236 (information passed in ompi/communicator/comm.c: min only 48) +OPAL_WITH_OPTION_MIN_MAX_VALUE(object_name, 64, 64, 256) + +# Min and Max length according to MPI-2.1, p. 287 is 32; longest key in ROMIO however 33 +OPAL_WITH_OPTION_MIN_MAX_VALUE(info_key, 36, 34, 255) + +# No lower and upper bound required or enforced! +OPAL_WITH_OPTION_MIN_MAX_VALUE(info_val, 256, 32, 1024) + +# Min length according to _POSIX_HOST_NAME_MAX=255 (4*HOST_NAME_MAX) +OPAL_WITH_OPTION_MIN_MAX_VALUE(port_name, 1024, 255, 2048) + +# Min length accroding to MPI-2.1, p. 418 +OPAL_WITH_OPTION_MIN_MAX_VALUE(datarep_string, 128, 64, 256) + +# How to build libltdl +AC_ARG_WITH([libltdl], + [AC_HELP_STRING([--with-libltdl(=DIR)], + [Where to find libltdl (this option is ignored if --disable-dlopen is used). DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of libltdl. "external" forces Open MPI to use an external installation of libltdl. Supplying a valid directory name also forces Open MPI to use an external installation of libltdl, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries.])]) + +AC_DEFINE_UNQUOTED([OPAL_ENABLE_CRDEBUG], [0], + [Whether we want checkpoint/restart enabled debugging functionality or not]) + +# some systems don't want/like getpwuid +AC_MSG_CHECKING([if want getpwuid support]) +AC_ARG_ENABLE([getpwuid], + [AC_HELP_STRING([--disable-getpwuid], + [Disable getpwuid support (default: enabled)])]) +if test "$enable_getpwuid" = "no"; then + AC_MSG_RESULT([no]) + opal_want_getpwuid=0 +else + AC_MSG_RESULT([yes]) + opal_want_getpwuid=1 +fi +AC_DEFINE_UNQUOTED([OPAL_ENABLE_GETPWUID], [$opal_want_getpwuid], + [Disable getpwuid support (default: enabled)]) + +dnl We no longer support the old OPAL_ENABLE_PROGRESS_THREADS. At +dnl some point, this should die. +AC_DEFINE([OPAL_ENABLE_PROGRESS_THREADS], + [0], + [Whether we want BTL progress threads enabled]) + +])dnl diff --git a/config/opal_ensure_contains_optflags.m4 b/config/opal_ensure_contains_optflags.m4 new file mode 100644 index 00000000..b9d96de1 --- /dev/null +++ b/config/opal_ensure_contains_optflags.m4 @@ -0,0 +1,66 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007-2009 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OPAL_ENSURE_CONTAINS_OPTFLAGS],[ + +# Modularize this setup so that sub-configure.in scripts can use this +# same setup code. + +################################## +# Optimization flags +################################## + +# If the user did not specify optimization flags, add some (the value +# from $OPTFLAGS) + +co_arg="$1" +co_found=0 +for co_word in $co_arg; do + # See http://www.gnu.org/software/autoconf/manual/html_node/Quadrigraphs.html#Quadrigraphs + # for an explanation of @<:@ and @:>@ -- they m4 expand to [ and ] + case $co_word in + -g) co_found=1 ;; + -g@<:@1-3@:>@) co_found=1 ;; + +K@<:@0-5@:>@) co_found=1 ;; + -O) co_found=1 ;; + -O@<:@0-9@:>@) co_found=1 ;; + -xO) co_found=1 ;; + -xO@<:@0-9@:>@) co_found=1 ;; + -fast) co_found=1 ;; + + # The below Sun Studio flags require or + # trigger -xO optimization + -xvector*) co_found=1 ;; + -xdepend=yes) co_found=1 ;; + + esac +done + +if test "$co_found" = "0"; then + co_result="$OPTFLAGS $co_arg" +else + co_result="$co_arg" +fi + +# Clean up + +unset co_found co_word co_arg +]) diff --git a/config/opal_find_type.m4 b/config/opal_find_type.m4 new file mode 100644 index 00000000..bc98dd68 --- /dev/null +++ b/config/opal_find_type.m4 @@ -0,0 +1,56 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +# OPAL_FIND_TYPE(type, [list of c types], abort if not found, +# target size, variable to set) +# ----------------------------------------------------------- +AC_DEFUN([OPAL_FIND_TYPE],[ + AS_VAR_PUSHDEF([type_var], [opal_cv_find_type_$1]) + + oft_abort_on_fail="$3" + oft_target_size="$4" + + AC_CACHE_CHECK([for C type corresponding to $1], type_var, + [ # Loop over all the types handed to us + oft_real_type= + AS_IF([test "$oft_target_size" != ""], + [m4_foreach(oft_type, [$2], + [if test -z "$oft_real_type"; then + if test "[$ac_cv_sizeof_]m4_bpatsubst(oft_type, [[^a-zA-Z0-9_]], [_])" = "$oft_target_size" ; then + oft_real_type="oft_type" + fi + fi +])]) + AS_IF([test -z "$oft_real_type"], + [AS_VAR_SET(type_var, "not found")], + [AS_VAR_SET(type_var, "$oft_real_type")])]) + + AS_VAR_IF(type_var, ["not found"], + [AC_MSG_WARN([*** Did not find corresponding C type]) + AS_IF([test "$oft_abort_on_fail" != "no"], + [AC_MSG_ERROR([Cannot continue])])]) + + AS_VAR_IF(type_var, ["not found"], [$5=], [AS_VAR_COPY([$5], [type_var])]) + + unset oft_real_type oft_target_size + + AS_VAR_POPDEF([type_var])dnl +])dnl diff --git a/config/opal_functions.m4 b/config/opal_functions.m4 new file mode 100644 index 00000000..62c8c610 --- /dev/null +++ b/config/opal_functions.m4 @@ -0,0 +1,661 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. +dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. +dnl Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl Copyright (c) 2015-2016 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl +dnl Portions of this file derived from GASNet v1.12 (see "GASNet" +dnl comments, below) +dnl Copyright 2004, Dan Bonachea +dnl +dnl IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +dnl DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +dnl OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF +dnl CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +dnl +dnl THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +dnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +dnl AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +dnl ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO +dnl PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +dnl + +AC_DEFUN([OPAL_CONFIGURE_SETUP],[ + +# Some helper script functions. Unfortunately, we cannot use $1 kinds +# of arugments here because of the m4 substitution. So we have to set +# special variable names before invoking the function. :-\ + +opal_show_title() { + cat <@:*) + echo installing to directory \"$prefix\" + ;; + *) + AC_MSG_ERROR(prefix "$prefix" must be an absolute directory path) + ;; +esac + +# BEGIN: Derived from GASNet + +# Suggestion from Paul Hargrove to disable --program-prefix and +# friends. Heavily influenced by GASNet 1.12 acinclude.m4 +# functionality to do the same thing (copyright listed at top of this +# file). + +# echo program_prefix=$program_prefix program_suffix=$program_suffix program_transform_name=$program_transform_name +# undo prefix autoconf automatically adds during cross-compilation +if test "$cross_compiling" = yes && test "$program_prefix" = "${target_alias}-" ; then + program_prefix=NONE +fi +# normalize empty prefix/suffix +if test -z "$program_prefix" ; then + program_prefix=NONE +fi +if test -z "$program_suffix" ; then + program_suffix=NONE +fi +# undo transforms caused by empty prefix/suffix +if expr "$program_transform_name" : 's.^..$' >/dev/null || \ + expr "$program_transform_name" : 's.$$..$' >/dev/null || \ + expr "$program_transform_name" : 's.$$..;s.^..$' >/dev/null ; then + program_transform_name="s,x,x," +fi +if test "$program_prefix$program_suffix$program_transform_name" != "NONENONEs,x,x," ; then + AC_MSG_WARN([*** The Open MPI configure script does not support --program-prefix, --program-suffix or --program-transform-name. Users are recommended to instead use --prefix with a unique directory and make symbolic links as desired for renaming.]) + AC_MSG_ERROR([*** Cannot continue]) +fi + +# END: Derived from GASNet +])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +AC_DEFUN([OPAL_LOG_MSG],[ +# 1 is the message +# 2 is whether to put a prefix or not +if test -n "$2"; then + echo "configure:__oline__: $1" >&5 +else + echo $1 >&5 +fi])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +AC_DEFUN([OPAL_LOG_FILE],[ +# 1 is the filename +if test -n "$1" && test -f "$1"; then + cat $1 >&5 +fi])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +AC_DEFUN([OPAL_LOG_COMMAND],[ +# 1 is the command +# 2 is actions to do if success +# 3 is actions to do if fail +echo "configure:__oline__: $1" >&5 +$1 1>&5 2>&1 +opal_status=$? +OPAL_LOG_MSG([\$? = $opal_status], 1) +if test "$opal_status" = "0"; then + unset opal_status + $2 +else + unset opal_status + $3 +fi])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +AC_DEFUN([OPAL_UNIQ],[ +# 1 is the variable name to be uniq-ized +opal_name=$1 + +# Go through each item in the variable and only keep the unique ones + +opal_count=0 +for val in ${$1}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison with + # "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi +done + +# Take all the items in the "array" and assemble them back into a +# single variable + +opal_i=1 +opal_done="`expr $opal_i \> $opal_count`" +opal_newval= +while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" +done + +# Done; do the assignment + +opal_newval="`echo $opal_newval`" +opal_eval="$opal_name=\"$opal_newval\"" +eval $opal_eval + +# Clean up + +unset opal_name opal_i opal_done opal_newval opal_eval opal_count])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# OPAL_APPEND_UNIQ(variable, new_argument) +# ---------------------------------------- +# Append new_argument to variable if not already in variable. This assumes a +# space seperated list. +# +# This could probably be made more efficient :(. +AC_DEFUN([OPAL_APPEND_UNIQ], [ +for arg in $2; do + opal_found=0; + for val in ${$1}; do + if test "x$val" = "x$arg" ; then + opal_found=1 + break + fi + done + if test "$opal_found" = "0" ; then + if test -z "$$1"; then + $1="$arg" + else + $1="$$1 $arg" + fi + fi +done +unset opal_found +]) + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# Remove all duplicate -I, -L, and -l flags from the variable named $1 +AC_DEFUN([OPAL_FLAGS_UNIQ],[ + # 1 is the variable name to be uniq-ized + opal_name=$1 + + # Go through each item in the variable and only keep the unique ones + + opal_count=0 + for val in ${$1}; do + opal_done=0 + opal_i=1 + opal_found=0 + + # Loop over every token we've seen so far + + opal_done="`expr $opal_i \> $opal_count`" + while test "$opal_found" = "0" && test "$opal_done" = "0"; do + + # Have we seen this token already? Prefix the comparison + # with "x" so that "-Lfoo" values won't be cause an error. + + opal_eval="expr x$val = x\$opal_array_$opal_i" + opal_found=`eval $opal_eval` + + # Check the ending condition + + opal_done="`expr $opal_i \>= $opal_count`" + + # Increment the counter + + opal_i="`expr $opal_i + 1`" + done + + # Check for special cases where we do want to allow repeated + # arguments (per + # http://www.open-mpi.org/community/lists/devel/2012/08/11362.php + # and + # https://github.com/open-mpi/ompi/issues/324). + + case $val in + -Xclang) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; + -framework) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; + --param) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; + esac + + # If we didn't find the token, add it to the "array" + + if test "$opal_found" = "0"; then + opal_eval="opal_array_$opal_i=$val" + eval $opal_eval + opal_count="`expr $opal_count + 1`" + else + opal_i="`expr $opal_i - 1`" + fi + done + + # Take all the items in the "array" and assemble them back into a + # single variable + + opal_i=1 + opal_done="`expr $opal_i \> $opal_count`" + opal_newval= + while test "$opal_done" = "0"; do + opal_eval="opal_newval=\"$opal_newval \$opal_array_$opal_i\"" + eval $opal_eval + + opal_eval="unset opal_array_$opal_i" + eval $opal_eval + + opal_done="`expr $opal_i \>= $opal_count`" + opal_i="`expr $opal_i + 1`" + done + + # Done; do the assignment + + opal_newval="`echo $opal_newval`" + opal_eval="$opal_name=\"$opal_newval\"" + eval $opal_eval + + # Clean up + + unset opal_name opal_i opal_done opal_newval opal_eval opal_count +])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# OPAL_FLAGS_APPEND_UNIQ(variable, new_argument) +# ---------------------------------------------- +# Append new_argument to variable if: +# +# - the argument does not begin with -I, -L, or -l, or +# - the argument begins with -I, -L, or -l, and it's not already in variable +# +# This macro assumes a space seperated list. +AC_DEFUN([OPAL_FLAGS_APPEND_UNIQ], [ + OPAL_VAR_SCOPE_PUSH([opal_tmp opal_append]) + + for arg in $2; do + opal_tmp=`echo $arg | cut -c1-2` + opal_append=1 + AS_IF([test "$opal_tmp" = "-I" || test "$opal_tmp" = "-L" || test "$opal_tmp" = "-l"], + [for val in ${$1}; do + AS_IF([test "x$val" = "x$arg"], [opal_append=0]) + done]) + AS_IF([test "$opal_append" = "1"], + [AS_IF([test -z "$$1"], [$1=$arg], [$1="$$1 $arg"])]) + done + + OPAL_VAR_SCOPE_POP +]) + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# Macro that serves as an alternative to using `which `. It is +# preferable to simply using `which ` because backticks (`) (aka +# backquotes) invoke a sub-shell which may source a "noisy" +# ~/.whatever file (and we do not want the error messages to be part +# of the assignment in foo=`which `). This macro ensures that we +# get a sane executable value. +AC_DEFUN([OPAL_WHICH],[ +# 1 is the variable name to do "which" on +# 2 is the variable name to assign the return value to + +OPAL_VAR_SCOPE_PUSH([opal_prog opal_file opal_dir opal_sentinel]) + +opal_prog=$1 + +IFS_SAVE=$IFS +IFS="$PATH_SEPARATOR" +for opal_dir in $PATH; do + if test -x "$opal_dir/$opal_prog"; then + $2="$opal_dir/$opal_prog" + break + fi +done +IFS=$IFS_SAVE + +OPAL_VAR_SCOPE_POP +])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# Declare some variables; use OPAL_VAR_SCOPE_END to ensure that they +# are cleaned up / undefined. +AC_DEFUN([OPAL_VAR_SCOPE_PUSH],[ + + # Is the private index set? If not, set it. + if test "x$opal_scope_index" = "x"; then + opal_scope_index=1 + fi + + # First, check to see if any of these variables are already set. + # This is a simple sanity check to ensure we're not already + # overwriting pre-existing variables (that have a non-empty + # value). It's not a perfect check, but at least it's something. + for opal_var in $1; do + opal_str="opal_str=\"\$$opal_var\"" + eval $opal_str + + if test "x$opal_str" != "x"; then + AC_MSG_WARN([Found configure shell variable clash!]) + AC_MSG_WARN([[OPAL_VAR_SCOPE_PUSH] called on "$opal_var",]) + AC_MSG_WARN([but it is already defined with value "$opal_str"]) + AC_MSG_WARN([This usually indicates an error in configure.]) + AC_MSG_ERROR([Cannot continue]) + fi + done + + # Ok, we passed the simple sanity check. Save all these names so + # that we can unset them at the end of the scope. + opal_str="opal_scope_$opal_scope_index=\"$1\"" + eval $opal_str + unset opal_str + + env | grep opal_scope + opal_scope_index=`expr $opal_scope_index + 1` +])dnl + +# Unset a bunch of variables that were previously set +AC_DEFUN([OPAL_VAR_SCOPE_POP],[ + # Unwind the index + opal_scope_index=`expr $opal_scope_index - 1` + opal_scope_test=`expr $opal_scope_index \> 0` + if test "$opal_scope_test" = "0"; then + AC_MSG_WARN([[OPAL_VAR_SCOPE_POP] popped too many OPAL configure scopes.]) + AC_MSG_WARN([This usually indicates an error in configure.]) + AC_MSG_ERROR([Cannot continue]) + fi + + # Get the variable names from that index + opal_str="opal_str=\"\$opal_scope_$opal_scope_index\"" + eval $opal_str + + # Iterate over all the variables and unset them all + for opal_var in $opal_str; do + unset $opal_var + done +])dnl + + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# +# OPAL_WITH_OPTION_MIN_MAX_VALUE(NAME,DEFAULT_VALUE,LOWER_BOUND,UPPER_BOUND) +# Defines a variable OPAL_MAX_xxx, with "xxx" being specified as parameter $1 as "variable_name". +# If not set at configure-time using --with-max-xxx, the default-value ($2) is assumed. +# If set, value is checked against lower (value >= $3) and upper bound (value <= $4) +# +AC_DEFUN([OPAL_WITH_OPTION_MIN_MAX_VALUE], [ + max_value=[$2] + AC_MSG_CHECKING([maximum length of ]m4_translit($1, [_], [ ])) + AC_ARG_WITH([max-]m4_translit($1, [_], [-]), + AC_HELP_STRING([--with-max-]m4_translit($1, [_], [-])[=VALUE], + [maximum length of ]m4_translit($1, [_], [ ])[s. VALUE argument has to be specified (default: [$2]).])) + if test ! -z "$with_max_[$1]" && test "$with_max_[$1]" != "no" ; then + # Ensure it's a number (hopefully an integer!), and >0 + expr $with_max_[$1] + 1 > /dev/null 2> /dev/null + AS_IF([test "$?" != "0"], [happy=0], + [AS_IF([test $with_max_[$1] -ge $3 && test $with_max_[$1] -le $4], + [happy=1], [happy=0])]) + + # If badness in the above tests, bail + AS_IF([test "$happy" = "0"], + [AC_MSG_RESULT([bad value ($with_max_[$1])]) + AC_MSG_WARN([--with-max-]m4_translit($1, [_], [-])[s value must be >= $3 and <= $4]) + AC_MSG_ERROR([Cannot continue])]) + max_value=$with_max_[$1] + fi + AC_MSG_RESULT([$max_value]) + AC_DEFINE_UNQUOTED([OPAL_MAX_]m4_toupper($1), $max_value, + [Maximum length of ]m4_translit($1, [_], [ ])[s (default is $2)]) + [OPAL_MAX_]m4_toupper($1)=$max_value + AC_SUBST([OPAL_MAX_]m4_toupper($1)) +])dnl + +dnl ####################################################################### +dnl ####################################################################### +dnl ####################################################################### + +# Usage: OPAL_COMPUTE_MAX_VALUE(number_bytes, variable_to_set, action if overflow) +# Compute maximum value of datatype of +# number_bytes, setting the result in the second argument. Assumes a +# signed datatype. +AC_DEFUN([OPAL_COMPUTE_MAX_VALUE], [ + # This is more complicated than it really should be. But some + # expr implementations (OpenBSD) have an expr with a max value of + # 2^31 - 1, and we sometimes want to compute the max value of a + # type as big or bigger than that... + opal_num_bits=`expr $1 \* 8 - 1` + newval=1 + value=1 + overflow=0 + + while test $opal_num_bits -ne 0 ; do + newval=`expr $value \* 2` + if test 0 -eq `expr $newval \< 0` ; then + # if the new value is not negative, next iteration... + value=$newval + opal_num_bits=`expr $opal_num_bits - 1` + # if this was the last iteration, subtract 1 (as signed + # max positive is 2^num_bits - 1). Do this here instead + # of outside of the while loop because we might have + # already subtracted 1 by then if we're trying to find the + # max value of the same datatype expr uses as it's + # internal representation (ie, if we hit the else + # below...) + if test 0 -eq $opal_num_bits ; then + value=`expr $value - 1` + fi + else + # if the new value is negative, we've over flowed. First, + # try adding value - 1 instead of value (see if we can get + # to positive max of expr) + newval=`expr $value - 1 + $value` + if test 0 -eq `expr $newval \< 0` ; then + value=$newval + # Still positive, this is as high as we can go. If + # opal_num_bits is 1, we didn't actually overflow. + # Otherwise, we overflowed. + if test 1 -ne $opal_num_bits ; then + overflow=1 + fi + else + # stil negative. Time to give up. + overflow=1 + fi + opal_num_bits=0 + fi + done + + AS_VAR_SET([$2], [$value]) + AS_IF([test $overflow -ne 0], [$3]) +])dnl diff --git a/config/opal_get_version.m4 b/config/opal_get_version.m4 new file mode 100644 index 00000000..d8648a3a --- /dev/null +++ b/config/opal_get_version.m4 @@ -0,0 +1,101 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +dnl University Research and Technology +dnl Corporation. All rights reserved. +dnl Copyright (c) 2004-2005 The University of Tennessee and The University +dnl of Tennessee Research Foundation. All rights +dnl reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl Copyright (c) 2008-2014 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2014 Intel, Inc. All rights reserved. +dnl Copyright (c) 2014 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +dnl +dnl This file is also used as input to opal_get_version.sh. +dnl + +# OPAL_GET_VERSION(version_file, variable_prefix) +# ----------------------------------------------- +# parse version_file for version information, setting +# the following shell variables: +# +# prefix_VERSION +# prefix_BASE_VERSION +# prefix_MAJOR_VERSION +# prefix_MINOR_VERSION +# prefix_RELEASE_VERSION +# prefix_GREEK_VERSION +# prefix_REPO_REV +# prefix_TARBALL_VERSION +# prefix_RELEASE_DATE +m4_define([OPAL_GET_VERSION],[ + dnl quote eval to suppress macro expansion with non-GNU m4 + if test -f "$1"; then + srcdir=`dirname $1` + opal_vers=`sed -n " + t clear + : clear + s/^major/$2_MAJOR_VERSION/ + s/^minor/$2_MINOR_VERSION/ + s/^release/$2_RELEASE_VERSION/ + s/^greek/$2_GREEK_VERSION/ + s/^repo_rev/$2_REPO_REV/ + s/^tarball_version/$2_TARBALL_VERSION/ + s/^date/$2_RELEASE_DATE/ + t print + b + : print + p" < "$1"` + [eval] "$opal_vers" + + $2_VERSION="$$2_MAJOR_VERSION.$$2_MINOR_VERSION.$$2_RELEASE_VERSION" + $2_VERSION="${$2_VERSION}${$2_GREEK_VERSION}" + + if test "$$2_TARBALL_VERSION" = ""; then + $2_TARBALL_VERSION=$$2_VERSION + fi + + m4_ifdef([AC_MSG_CHECKING], + [AC_MSG_CHECKING([for repo version])]) + + # If repo_rev was not set in the VERSION file, then get it now + if test "$$2_REPO_REV" = ""; then + # See if we can find the "git" command. + git_happy=0 + git --version > /dev/null 2>&1 + if test $? -eq 0; then + git_happy=1 + fi + + # If we're in a git repo and we found the git command, use + # git describe to get the repo rev + if test -d "$srcdir/.git" && test $git_happy -eq 1; then + if test "$srcdir" != "`pwd`"; then + git_save_dir=`pwd` + cd $srcdir + $2_REPO_REV=`git describe --tags --always` + cd $git_save_dir + unset git_save_dir + else + $2_REPO_REV=`git describe --tags --always` + fi + else + $2_REPO_REV="date`date '+%Y-%m-%d'`" + fi + fi + + m4_ifdef([AC_MSG_RESULT], + [AC_MSG_RESULT([$$2_REPO_REV])]) + fi +]) diff --git a/config/opal_get_version.m4sh b/config/opal_get_version.m4sh new file mode 100644 index 00000000..d9d45d97 --- /dev/null +++ b/config/opal_get_version.m4sh @@ -0,0 +1,93 @@ +m4_define([_m4_divert(SCRIPT)], 100) +m4_divert_push([SCRIPT])dnl +#!/bin/sh +# +# opal_get_version is created from opal_get_version.m4 and opal_get_version.m4sh. +# +# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana +# University Research and Technology +# Corporation. All rights reserved. +# Copyright (c) 2004-2005 The University of Tennessee and The University +# of Tennessee Research Foundation. All rights +# reserved. +# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +# University of Stuttgart. All rights reserved. +# Copyright (c) 2004-2005 The Regents of the University of California. +# All rights reserved. +# Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved. +# $COPYRIGHT$ +# +# Additional copyrights may follow +# +# $HEADER$ +# + +m4_include([opal_get_version.m4]) + +srcfile="$1" +option="$2" + +if test -z "$srcfile"; then + option="--help" +else + OPAL_GET_VERSION([$srcfile],[OPAL]) + + if test "$option" = ""; then + option="--full" + fi +fi + +case "$option" in + --full|-v|--version) + echo $OPAL_VERSION + ;; + --major) + echo $OPAL_MAJOR_VERSION + ;; + --minor) + echo $OPAL_MINOR_VERSION + ;; + --release) + echo $OPAL_RELEASE_VERSION + ;; + --greek) + echo $OPAL_GREEK_VERSION + ;; + --repo-rev) + echo $OPAL_REPO_REV + ;; + --tarball) + echo $OPAL_TARBALL_VERSION + ;; + --release-date) + echo $OPAL_RELEASE_DATE + ;; + --all) + echo ${OPAL_VERSION} : ${OPAL_MAJOR_VERSION} : ${OPAL_MINOR_VERSION} : ${OPAL_RELEASE_VERSION} : ${OPAL_GREEK_VERSION} : ${OPAL_REPO_REV} : ${OPAL_TARBALL_VERSION} + ;; + -h|--help) + cat < [